我无法理解为什么此代码的输出为16。如果无法正确格式化任何内容,我感到抱歉。
我已经编写了几次代码,以确保正确格式化
x = 1
while x < 10:
x += x
print(x)
为我打印的输出为16。
答案 0 :(得分:2)
这对我来说很有意义。语句x += x
相当于x *= 2
,是x
的两倍。
为帮助您理解,请尝试在每次迭代后打印x
:
x = 1
while x < 10:
x += x
print(x)
输出:
2
4
8
16
在每个步骤上:
2 # greater than 10? no
4 # greater than 10? no
8 # greater than 10? no
16 # greater than 10? yes, stop loop
答案 1 :(得分:0)
也许更改print(x)
的位置可以为您提供帮助:
x = 1
print(1)
while x < 10:
x += x
print(x)
输出:
1
2
4
8
16
如您所见,有一个共同的顾客。 while
的每次迭代都复制x
的before值(这归因于x += x
,它可以解释为x的两倍)。
然后,条件while x < 10
非常简单。
1 # Less than 10. Keep looping.
2 # Less than 10. Keep looping.
4 # Less than 10. Keep looping.
8 # Less than 10. Keep looping.
16 # Greater than 10. STOP!