課程
/后端開發
/Python
/初識Python
sum = 0
x = 1
n = 1
while True:
? ? if n>=20:
? ? ? ? break
? ? x=2**(n-1)
? ? sum+=x
? ? n+=1
print sum
2016-04-15
源自:初識Python 5-6
正在回答
并不行= -
sum?=?0 x?=?1 n?=?1 while?True: ????if?n>=20:????##?這句是錯誤的關鍵,應該是?n?>?20,下面有解釋。 ????????break ????x=2**(n-1) ????sum+=x ????n+=1 print?sum ##?在第二十次執行的時候,?進入循環的?第一個行為,?就是做判斷?n?是否大于等于20,?成立,結果直接break ##?跳出,?也就是說少執行了一次,?得將判斷語句?改成 if?n>=20: ????xxxx ???? ##?最后在啰嗦一句,?在?這種?while?True:?if?condition:break?的句式中,?一定要做好邊際判斷,?其實凡是 ##?做數字判斷的時候,?我們都要當心邊際判斷是否準確,?否則很容易?多做或者少做依次循環。
首先要感謝題主,如果不是因為題主這個問題,我寫的程序中的邏輯錯誤就會一直存在下去了。
題主這個問題主要在于if n>=20:這句。n是從1開始的,到n=20時,下面的語句就不會執行了,也就是說,sum只加到了1-19項,第20項沒有加上。
修改方面,可以把if判斷語句放在while循環體的最下面,或者修改一下條件為:n>20
sum=0
x=1
n=1
? ? if n>20:
? ?break
# ? ?sum+=x
? ? sum=sum+x
舉報
學python入門視頻教程,讓你快速入門并能編寫簡單的Python程序
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-04-16
2016-04-16
2016-04-16
首先要感謝題主,如果不是因為題主這個問題,我寫的程序中的邏輯錯誤就會一直存在下去了。
題主這個問題主要在于if n>=20:這句。n是從1開始的,到n=20時,下面的語句就不會執行了,也就是說,sum只加到了1-19項,第20項沒有加上。
修改方面,可以把if判斷語句放在while循環體的最下面,或者修改一下條件為:n>20
sum=0
x=1
n=1
while True:
? ? if n>20:
? ?break
? ? x=2**(n-1)
# ? ?sum+=x
? ? sum=sum+x
? ? n+=1
print sum