2016-12-27 189 views
1

我是一個Python初學者,我正在學習有關for循環。所以,請誰能告訴我,因爲我的程序不運行(甚至在PYTHON SHELL)For循環意外行爲

words = ['cat', 'window', 'defenestrate'] 
for w in words: 
    if len(w) > 6: 
     words.insert(0, w) 
+0

你得到了什麼錯誤? –

+9

據我可以告訴有兩個主要問題。縮進是不正確的,並且您正在循環並修改列表 – mic4ael

+0

對於@ mic4ael提到的兩個問題,也許它「不起作用」的原因是因爲它仍然期待着另一行。再次按下輸入鍵,它會運行並拋出錯誤。 –

回答

1

您的代碼似乎有兩個問題,通過@mic4ael評論有什麼錯此代碼: 首先是縮進,words.insert應該是if塊內,此外,你追加到你循環相同的列表,這將導致無限循環,如果有一個匹配。

的解決方案是正確的縮進,並創建一個新的列表,以保持匹配,即:

words = ['cat', 'window', 'defenestrate'] 
wordsMatch = [] 
for w in words: 
    if len(w) > 6: 
     wordsMatch.insert(0, w) 
print wordsMatch 

demo

+0

@ mic4ael非常感謝 – Faruq

+0

不客氣!如果我的答案幫助了你,請考慮接受它作爲正確答案,謝謝! –

0

因爲要創建一個無限循環。您遍歷該列表,如果您發現一個長度超過6個字符的單詞,則將其添加到列表中。