題目:用python印出100以內所有的偶數
第一段程式碼:
n = 1
i = 2*n
while i <= 100:
print(i)
n+=1
程式碼執行結果:無限的列印數字2
#第二段程式碼:
#n = 1
i = 2*n
while i <= 100:
print(i)
n+=1
i = 2*n
程式碼執行結果:列印正確
#我的問題:
為什麼第一段程式碼印出來結果是錯的,第二段程式碼只是在while循環裡面加上i=2*n結果就對了?難道第一段程式碼中,n =1的這一段,n在不斷地加1的過程中,無法改變i的值麼?為什麼?
伊谢尔伦2017-05-24 11:37:01
在循環中,沒有執行 i = 2*n
,它的值又怎么会改变. 只有执行了相应的语句,才会改变的.
初始赋值 i = 2*n
, i
的值不会动态的随n
的改變而改變,只有執行了相應的語句才會改變.
仅有的幸福2017-05-24 11:37:01
是的,第一段代碼n加1並沒有改變i的值,i一直是2.
while循环的语法是:
while 条件:
code...
只要條件滿足True,就一直循環。
第一段的條件一直是 i < 100, 即 2 < 100, 滿足條件,所以會不斷循環。