Muitos programadores de Python provavelmente não sabem que a sintaxe de whileloops e forloops inclui uma else:cláusula opcional :
for val in iterable:
do_something(val)
else:
clean_up()
O corpo da elsecláusula é um bom local para certos tipos de ações de limpeza e é executado na finalização normal do loop: returnOu seja, sair do loop com ou breakignorar a elsecláusula; saindo depois que um continueexecuta. Só sei disso porque procurei (mais uma vez), porque nunca consigo me lembrar de quando a elsecláusula é executada.
Sempre? Em "falha" do loop, como o nome sugere? Em terminação regular? Mesmo se o loop for encerrado comreturn ? Eu nunca posso ter certeza absoluta sem procurar.
Eu culpo minha persistente incerteza pela escolha da palavra-chave: acho elseincrivelmente unmnemônico para essa semântica. Minha pergunta não é "por que essa palavra-chave é usada para esse fim" (que eu provavelmente votaria para fechar, embora apenas depois de ler as respostas e os comentários), mas como posso pensar sobre a elsepalavra - chave para que sua semântica faça sentido? pode, portanto, lembrar?
Tenho certeza de que houve uma boa quantidade de discussão sobre isso, e posso imaginar que a escolha foi feita por consistência com a cláusula tryda declaração else:(que eu também preciso procurar) e com o objetivo de não adicionar à lista de Palavras reservadas do Python. Talvez as razões para a escolha elseesclareçam sua função e a tornem mais memorável, mas estou depois de conectar o nome à função, não depois da explicação histórica em si.
As respostas a esta pergunta , que minha pergunta foi brevemente fechada como duplicata, contêm muitas histórias interessantes. Minha pergunta tem um foco diferente (como conectar a semântica específica da elseopção de palavra-chave), mas acho que deve haver um link para essa pergunta em algum lugar.
elsemeios basicamente "se a condição de continuação falhar". Em um loop for tradicional, a condição de continuação é tipicamente i < 42, nesse caso, você pode ver essa parte comoif i < 42; execute the loop body; else; do that other thing
break. O caso de uso canônico é quando o loop procura por algo e é interrompido quando o encontra. O elseé executado apenas se nada for encontrado.