Title: Use python to print all even numbers within 100
The first code:
n = 1
i = 2*n
while i <= 100:
print(i)
n+=1
Code execution result: infinite printing number 2
Second code:
n = 1
i = 2*n
while i <= 100:
print(i)
n+=1
i = 2*n
Code execution result: correct printing
My question:
Why is the result printed by the first piece of code wrong? The second piece of code just adds i=2*n to the while loop and the result is correct? Is it possible that in the first piece of code, where n = 1, n cannot change the value of i while n is constantly adding 1? Why?
伊谢尔伦2017-05-24 11:37:01
In the loop, there is no change in the execution of i = 2*n
,它的值又怎么会改变. 只有执行了相应的语句,才会改变的.
初始赋值 i = 2*n
, i
的值不会动态的随n
. It will change only when the corresponding statement is executed.
仅有的幸福2017-05-24 11:37:01
Yes, adding 1 to n in the first piece of code does not change the value of i, i is always 2.
while循环的语法是:
while 条件:
code...
As long as the condition meets True, it will keep looping.
The condition of the first paragraph has always been i < 100, that is, 2 < 100, which satisfies the condition, so it will continue to loop.