亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

不懂哪里錯了,求指點

sum = 0

x = 1

n = 1

while True:

? ? if n>=20:

? ? ? ? break

? ? x=2**(n-1)

? ? sum+=x

? ? n+=1

print sum


正在回答

3 回答

http://img1.sycdn.imooc.com//5712483400019f6404850623.jpg并不行= -

0 回復 有任何疑惑可以回復我~
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?的句式中,?一定要做好邊際判斷,?其實凡是
##?做數字判斷的時候,?我們都要當心邊際判斷是否準確,?否則很容易?多做或者少做依次循環。


0 回復 有任何疑惑可以回復我~

首先要感謝題主,如果不是因為題主這個問題,我寫的程序中的邏輯錯誤就會一直存在下去了。

題主這個問題主要在于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


0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
初識Python
  • 參與學習       758392    人
  • 解答問題       8967    個

學python入門視頻教程,讓你快速入門并能編寫簡單的Python程序

進入課程

不懂哪里錯了,求指點

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號