如果在python中嵌套错误的答案

时间:2019-07-10 01:58:48

标签: python if-statement nested

我期望返回3值,但是我的代码未返回任何值。

谢谢

a = 3
if a > 0:
    if a == 1:
        print(1)
    elif a == 2:
        print(2)
elif a == 2:
    print(2)
elif a == 3:
    print(3)
else:
    print(a)

4 个答案:

答案 0 :(得分:1)

这是因为满足您的第一个条件if a > 0。因此,代码沿该路径行进并且不满足a == 1a == 2的两个嵌套条件。

答案 1 :(得分:0)

由于a == 3,您的第一个if满足(其他elif不会触发,因为它们仅在前一个if失败时才触发),然后您的代码将测试a == 1或2(即并非如此),因此您的代码不会打印任何内容。您应该这样修改代码

a = 3
if a > 0:
    if a == 1:
        print(1)
    elif a == 2:
        print(2)
if a == 2:
    print(2)
if a == 3:
    print(3)
else:
    print(a)

答案 2 :(得分:0)

elif仅在if条件为False的情况下执行,因此您可能需要:

a = 3
if a > 0:
    if a == 1:
        print(1)
    elif a == 2:
        print(2)

if a == 3:
    print(3)
else:
    print(a)

输出:

3

答案 3 :(得分:0)

当a的值大于0时,满足第一个if语句。可以通过以下if / elif块实现所需的结果:

a = 3
if a == 3:
    print(3)
elif a == 2:
    print(2)
elif a == 1:
    print(1)
else:
    print(a)

上面将检查三个条件的变量,打印出所需的结果。 else:将捕获其他任何输入并打印变量。