我無法理解為什么此代碼的輸出為 16。如果我的格式有誤,我深表歉意,我是編碼新手。我已經寫了幾次代碼以確保我的格式正確x = 1while x < 10: x += xprint(x)為我打印的輸出是 16。
2 回答

尚方寶劍之說
TA貢獻1788條經驗 獲得超4個贊
對于我,這說得通。該語句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

滄海一幻覺
TA貢獻1824條經驗 獲得超5個贊
也許更改 的位置print(x)可以幫助您:
x = 1
print(1)
while x < 10:
x += x
print(x)
輸出:
1
2
4
8
16
如您所見,有一個共同的贊助人。每次迭代都會while復制之前的值x(這是由于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!
添加回答
舉報
0/150
提交
取消