課程
/后端開發
/Python
/初識Python
?while L.pop(1)==True:
? ? ? ? sum+=L[1]*L[1]
? ? ? ? L.pop(1)
2015-06-24
源自:初識Python 7-3
正在回答
最好能把上下文全都貼出來,光這行代碼看不出要干什么。
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那么些數呢,打算怎么辦?
舉報
學python入門視頻教程,讓你快速入門并能編寫簡單的Python程序
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2015-06-25
最好能把上下文全都貼出來,光這行代碼看不出要干什么。
while里的判斷條件是「把列表的第2個元素pop出來看等不等于True」。
如果這個判斷的目的是看迭代中列表還有沒有第2個元素的話,那顯然是錯誤的,你看下面的例子:
看到了嗎?最后的輸出是「超出范圍」,是個索引錯誤,而不是True/False(有還沒有)。
如果你一定要用L.pop(1)==True做判斷的話,除非你的目的是「只要列表的第2個元素不為0就能迭代下去」,但這有什么意義呢?
現在L里還有1,5,6那么些數呢,打算怎么辦?