Python While循环中的非常初学者的问题

本罗汉

为什么这个While循环没有中断或停止

我添加了一些输出屏幕截图

term = 0
i = 13
while True:
    print i > 1
    print "i = ",i
    if i == 1:
        term += 1
        break
    if i%2 == 0:
        i = i / 2
        term += 1
    if i%2 != 0:
        i = i * 3 + 1
        term += 1

输出量

我也尝试过这种方式

term = 1
i = 13
while i > 1:
    print i > 1
    if i%2 == 0:
        i = i / 2
        term += 1
    if i%2 != 0:
        i = i * 3 + 1
        term += 1
约翰·库格曼

使用elif,使案件相互排斥。您不希望if在同一循环迭代中执行多个语句。

if i%2 == 0:
    i = i / 2
    term += 1
elif i%2 != 0:
    i = i * 3 + 1
    term += 1

或者else因为第二个条件是多余的而这样做。

if i%2 == 0:
    i = i / 2
    term += 1
else:
    i = i * 3 + 1
    term += 1

它在2之间摆动的原因4是因为2这两个if语句都运行。2即使是这样的第一个运行和半i,使它1现在很奇怪,第二个触发了,1变成4

if i%2 == 0:
    i = i / 2       # 2 --> 1
    term += 1
if i%2 != 0:
    i = i * 3 + 1   # 1 --> 4
    term += 1

下一个迭代4变为2

if i%2 == 0:
    i = i / 2       # 4 --> 2
    term += 1

这两个迭代会不断循环重复。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章