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

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

把for循環換成while之后是哪里出錯了呢

?while L.pop(1)==True:

? ? ? ? sum+=L[1]*L[1]

? ? ? ? L.pop(1)


正在回答

1 回答

最好能把上下文全都貼出來,光這行代碼看不出要干什么。

while里的判斷條件是「把列表的第2個元素pop出來看等不等于True」。

如果這個判斷的目的是看迭代中列表還有沒有第2個元素的話,那顯然是錯誤的,你看下面的例子:

L?=?[1,?2,?3]
L.pop(1)
#?2
L
#?[1,?3]
L.pop(1)
#?3
L
#?[1]
L.pop(1)
#?IndexError:?pop?index?out?of?range

看到了嗎?最后的輸出是「超出范圍」,是個索引錯誤,而不是True/False(有還沒有)。

如果你一定要用L.pop(1)==True做判斷的話,除非你的目的是「只要列表的第2個元素不為0就能迭代下去」,但這有什么意義呢?

L??=?[1,?2,?3,?0,?5,?6]
#?你不停的pop出來第2個元素,直到L=[1,?0,?5,?6]
L.pop(1)
#?返回值為0,需要說明的是python里True和1等價,False和0等價,所以此時0!=True,迭代結束

現在L里還有1,5,6那么些數呢,打算怎么辦?

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

舉報

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

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

進入課程

把for循環換成while之后是哪里出錯了呢

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

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

幫助反饋 APP下載

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

公眾號

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