【发布时间】:2020-06-05 06:14:02
【问题描述】:
使用“if-if-else”条件时,我无法获得所需的输出。但是,使用“if-elif-else”就可以了。我尝试过跟踪,但不明白输出差异的原因。我不确定为什么它在 'if-if-else' 案例仅执行 1 次后就爆发了,为什么它不像使用 'if-elif' 时那样执行。
这里是代码:除了第 8 行中的 'if' 被替换为 'elif' 之外,它们完全相同
1.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-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)
【问题讨论】:
标签: python if-statement while-loop output difference