搜尋

首頁  >  問答  >  主體

python小白基礎問題 關於while循環

題目:用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的值麼?為什麼?

大家讲道理大家讲道理2770 天前526

全部回覆(2)我來回復

  • 伊谢尔伦

    伊谢尔伦2017-05-24 11:37:01

    在循環中,沒有執行 i = 2*n,它的值又怎么会改变. 只有执行了相应的语句,才会改变的.
    初始赋值 i = 2*n, i的值不会动态的随n的改變而改變,只有執行了相應的語句才會改變.

    回覆
    0
  • 仅有的幸福

    仅有的幸福2017-05-24 11:37:01

    是的,第一段代碼n加1並沒有改變i的值,i一直是2.

    while循环的语法是:
    while 条件:
        code...
    

    只要條件滿足True,就一直循環。

    第一段的條件一直是 i < 100, 即 2 < 100, 滿足條件,所以會不斷循環。

    回覆
    0
  • 取消回覆