使用'if-if-else'条件时,我无法获得所需的输出。但是,使用'if-elif-else'效果很好。我尝试了跟踪,但是不了解输出差异的原因。我不确定为什么对于'if-if-else'情况仅执行1次后它会爆发,为什么它不像使用'if-elif'时那样表现。
这里是代码:除了在第8行中将'if'替换为'elif'之外,它们完全相同。>
1.if-if-if-else
x = 1 y = 0 while True: if (x is not None ) & (y%30!=0): y+=1 x=5 print("x=",x) if y%30==0: #line8 print("ENTERED y=",y) y-=29 else: break
2.if-elif-else
x = 1 y = 0 while True: if (x is not None ) & (y%30!=0): y+=1 x=5 print("x=",x) elif y%30==0: #line8 print("ENTERED y=",y) y-=29 else: break
以下是输出:
1.if-if-if-else
ENTERED y= 0 x= 5
2.if-elif-else
ENTERED y= 0
x= 5
x= 5
x= 5
x= 5
x= 5
x= 5
x= 5
x= 5
x= 5
x= 5
x= 5
x= 5
x= 5
x= 5
x= 5
x= 5
x= 5
x= 5
x= 5
x= 5
x= 5
x= 5
x= 5
x= 5
x= 5
x= 5
x= 5
x= 5
x= 5
ENTERED y= 0
x= 5
x= 5
x= 5
x= 5
...(prints x=5 for another 29-4 =25 times)
ENTERED y= 0
...(loops endlessly)
使用'if-if-else'条件时,我无法获得所需的输出。但是,使用'if-elif-else'效果很好。我已经尝试了跟踪,但是不了解...
当然有区别! elif
代表else if
。当在if
之后有另一个if
时,无论您从第一个if获得的结果如何,都会检查第二个if。