python - 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
这两个迭代在无限循环中一遍又一遍地重复。
推荐阅读
- arrays - 以编程方式为 DSPSplitComplex 复数创建存储阵列
- css - css:在溢出隐藏之前可见
- javascript - ValidationPipe() 不适用于覆盖 Nestjs/Crud 中的 @Query
- python - 需要将 2000 个变量组合到一个列表中以在 for 循环中使用
- hosts - 是否可以与其他网络上的人共享我的本地主机?
- plsql - 迭代回来调整for循环中的计算值
- html - 如何在图像中间插入按钮?
- python - 从 shell 脚本运行时 virtualenv 不活动
- php - 如何使用返回自身实例的方法模拟别名类?
- r - 单击 actionButton 时向数据框添加新行