while b:
n.append(int(b%10))
b=b/10
return n
这里的 while 语句即使在 b=0
时也没有停止,这有什么问题吗?
最佳答案
让我们简化您的 while 循环并删除不必要的部分:
while b:
b = b/10
print(b)
它的作用是,它接受给定的b
,将其除以10,并将其指定为b
。现在“除以 10”部分很棘手。
如果您使用的是 Python 2,它的工作方式为整数除法:
19/10 = 1
让我们再划分一次:
1/10 = 0
但在 Python 3 中,这是一个实际的、正确的划分:
19/10 = 1.9
让我们再划分一次:
1.9/10 = 0.19
因此,在 Python 2 中,循环将继续向下舍入除法,最终将达到 0。但在 Python 3 中,您将继续正确除以 float ,并且永远不会达到 0。这意味着您的 while 永远不会终止。
解决方案:如果你想通过整数除法最终以 0 结束,以便循环在某个时刻结束,你可以在 Python 3 中使用 a//b
在 Python 2 中获得与 a/b
相同的行为。
关于python - python中的while语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49260086/