Почему python использует «else» после циклов for и while? - PullRequest
376 голосов
/ 02 апреля 2012

Я понимаю, как работает эта конструкция:

for i in range(10):
    print(i)

    if i == 9:
        print("Too big - I'm giving up!")
        break;
else:
    print("Completed successfully")

Но я не понимаю, почему в качестве ключевого слова здесь используется else, поскольку оно предполагает, что рассматриваемый код запускается только в том случае, если блок for не завершается, что противоположно тому, что он делает! Как бы я ни думал об этом, мой мозг не может плавно перейти от оператора for к блоку else. Для меня continue или continuewith будет иметь больше смысла (и я пытаюсь научиться читать его как таковой).

Мне интересно, как Python-кодеры читают эту конструкцию в своей голове (или вслух, если хотите). Возможно, мне не хватает чего-то, что сделало бы такие кодовые блоки более легко расшифрованными?

Ответы [ 21 ]

0 голосов
/ 11 декабря 2018

Я просто пытался разобраться в этом сам.Я обнаружил, что следующее помогает!

• Думайте о else как о паре с if внутри цикла (вместо for) - если условие выполнено, тогда прервите цикл, иначесделать это - кроме одного else в паре с несколькими if s!
• Если if s не были удовлетворены вообще, то else.
• Несколько if s могуттакже на самом деле следует думать как if - elif s!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...