2016-12-27 4 views
1

私はPythonの初心者です、私はforループについて学んでいます。 最初のインデントです:だから誰もが私のプログラムがループの予期しない動作のため

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

どのようなエラーが表示されますか? –

+9

私が知る限り、2つの主な問題があります。インデントが間違っていて、同時にリストをループして変更しています – mic4ael

+0

@ mic4aelが言及している両方の問題については、おそらく別の行を期待しているためかもしれません。 Enterをもう一度押すと、実行され、エラーがスローされます。 –

答えて

1

あなたのコードは、@mic4aelでコメントとして2つの問題を抱えているようだ(EVEN PYTHON SHELL ON)を実行していないため、このコードで間違っているものを私に伝えることができますしてください、words.insertifブロック内にある必要があります。また、ループしている同じリストに追加しています。一致する場合は無限ループになります。あなたは無限ループを作成しているので

ソリューションは、適切にインデントとの一致を保持する新しいリストを作成、すなわちする。:

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文字より長い単語を見つけた場合はそれをリストに追加します。