如何在Python中进行迭代?

时间:2017-07-23 17:08:34

标签: python python-3.x

为什么下面的代码会产生5的输出?那对n条件来说意味着什么呢?它不应该总是产生一个无限循环,因为n永远都是真的吗?

n = 10000
count = 0

while n:
    count = count + 1
    n = n / 10
    n = int(n)

print (count)

输出:5

3 个答案:

答案 0 :(得分:1)

不是“n”并不总是如此。让我们一步一步地看一下,我打算在下面画一张表,在每一步中,n将除以10,计数将增加1

n        isConditionTrue    count
10000    yes                1
1000     yes                2
100      yes                3
10       yes                4
1        yes                5
0        no                 5

所以,现在循环将中断并且打印(计数)将产生5

答案 1 :(得分:0)

CharsetInputStream的简写,或者更准确地说是while n。代码将输出5,因为while n != 0长度为5位。每次循环时,您都会丢失while n == Truen然后n),直到n = n / 10变为零。

答案 2 :(得分:0)

while n:表示while n != 0:。输出为5,因为您初始化n = 100005位。在每个步骤中n将除以10,计数将增加1。虽然n == 0循环条件为False,但会终止它。

>>> n = 10000
>>> count = 0
>>> while n:
...     count = count + 1
...     n = n/10
...     n = int(n)
...     print(n)
... 
1000
100
10
1
0
>>> print(count)
5
>>>