2016-12-27 3 views
1

Я начинающий питон, и я узнаю о цикле for. Поэтому, пожалуйста, может кто-нибудь сказать мне, что случилось с этим кодом, потому что моя программа не работает (даже на питон SHELL)Для непредвиденного поведения цикла

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

какая ошибка у вас? –

+9

Насколько я могу судить, есть две основные проблемы. Отступ неверен, и вы одновременно зацикливаете и изменяете список. – mic4ael

+0

Для обеих проблем, о которых упоминал @ mic4ael, возможно, причина, по которой это «не работает», заключается в том, что она все еще ожидает другую строку. Нажмите еще раз, он запустится и выкинет ошибку. –

ответ

1

Вы код, кажется, есть 2 проблемы, как прокомментировал @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 символов, вы добавляете его в список.

Смежные вопросы