为什么下面的代码会产生5的输出?那对n条件来说意味着什么呢?它不应该总是产生一个无限循环,因为n永远都是真的吗?
n = 10000
count = 0
while n:
count = count + 1
n = n / 10
n = int(n)
print (count)
输出:5
答案 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)
Charset
是InputStream
的简写,或者更准确地说是while n
。代码将输出5,因为while n != 0
长度为5位。每次循环时,您都会丢失while n == True
(n
然后n
),直到n = n / 10
变为零。
答案 2 :(得分:0)
while n:
表示while n != 0:
。输出为5
,因为您初始化n = 10000
长5
位。在每个步骤中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
>>>