2016-12-27 3 views
1

나는 파이썬 초보자이고 나는 for 루프에 대해 배우고있다. 첫 번째는 들여 쓰기입니다 : 그래서 사람이 내 프로그램루프 예기치 않은 동작

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

어떤 오류가 발생합니까? –

+9

내가 아는 한 두 가지 주요 문제가 있습니다. 들여 쓰기가 잘못되어 있습니다. 동시에 목록을 반복하고 수정하는 중입니다. – mic4ael

+0

@ mic4ael이 언급 한 두 가지 문제점 모두에 대해 "작동하지 않는"이유는 다른 행이 계속 필요하기 때문입니다. Enter 키를 다시 누르면 실행되어 오류가 발생합니다. –

답변

1

당신의 코드가 @mic4ael에 의해 주석으로이 문제가있는 것 (심지어 파이썬 쉘)를 실행하지 않기 때문에이 코드에 문제가 있는지 말해 줄 수주십시오 , 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 자보다 긴 단어를 찾으면 목록에 추가합니다.