特定情况不会通过第 8 行的 elif:



我正在求解dcoder上的难题,我决定对解决方案进行硬编码,但仍然没有通过所有测试。

我将代码扩展到了现在的(我粘贴的代码(,以包括我能想到的所有情况。我发现它应该通过的具体情况,但由于某种原因没有发生。

我还尝试在if/elif块中添加括号,但这并没有改变任何东西(我没想到,但我仍然尝试过(

(
def damn(a, b, c, d, n, m):
    if a+c <= n:
        if b <= m and d <= m:
            return True
    elif a+d <= n:
        if b <= m and c <= m:
            return True
    elif a+c <= m:
        if b <= n and d <= n:
            return True
    elif a+d <= m:
        if b <= n and c <= n:
            return True
    elif b+c <= n:
        if a <= m and d <= m:
            return True
    elif b+d <= n:
        if a <= m and c <= m:
            return True
    elif b+c <= m:
        if a <= n and d <= n:
            return True
    elif b+d <= m:
        if a <= n and c <= n:
            return True
    else:
        return False
if damn(2, 2, 1, 4, 4, 3):
    print("Yes")
else:
    print("No")
elif a+c <= m:
        if b <= n and d <= n:
            return True

应该是:

3&lt; = 3

2&lt; = 4和4&lt; = 4

输出是正确的,这些是当我在/elif/else块之前打印它们之前出现的值,但出于某种原因函数"该死"返回false。

有人知道为什么会发生这种情况并可以解释吗?

您的第一个if语句通过:

if a + c <= n:

因此,代码永远不会到达您想要的Elif分支:

a, b, c, d, n, m  
2, 2, 1, 4, 4, 3

2 1(3(&lt; = 4

您可能想组合if语句而不是嵌套:

if a + c <= n and b <= m and d <= m:

相关内容

  • 没有找到相关文章

最新更新