De nombreux programmeurs Python sont probablement pas au courant que la syntaxe de l' while
boucles et for
boucles comprend une option de else:
clause de:
for val in iterable:
do_something(val)
else:
clean_up()
Le corps de l' else
clause est une bonne place pour certains types de nettoyage des actions, et est exécuté sur l'arrêt normal de la boucle: I. e., la sortie de la boucle avec return
ou break
ignore l' else
clause; quitter après un continue
l'exécute. Je sais ce que parce que j'ai juste regardé (encore une fois), parce que je ne me souviens jamais lorsque l' else
clause est exécutée.
Toujours? Sur "l'échec" de la boucle, comme le nom le suggère? Régulière de la résiliation? Même si la boucle est sortie avec return
? Je ne pouvez jamais être certain que sans le regarder.
Je blâme mon persistance de l'incertitude sur le choix de mots-clés: - je trouver de l' else
incroyablement unmnemonic pour cette sémantique. Ma question n'est pas "pourquoi est-ce le mot-clé utilisé à cette fin" (ce qui je ne serais probablement voter pour le fermer, mais seulement après avoir lu les réponses et les commentaires), mais comment puis-je penser à l' else
mot-clé, de sorte que sa sémantique logique, et je peut donc s'en souvenir?
Je suis sûr qu'il y a une bonne quantité de discussion à ce sujet, et je peux imaginer que le choix a été fait pour des raisons de cohérence avec l' try
de l'énoncé else:
de l'alinéa (que j'ai aussi de regarder en haut), et avec l'objectif de ne pas ajouter à la liste de Python mots réservés. Peut-être les raisons pour le choix d' else
permettra de clarifier sa fonction et de le rendre plus mémorable, mais je suis après le raccordement du nom de la fonction, non pas après une explication historique en soi.
Les réponses à cette question, ma question a été brièvement fermé comme un doublon, contiennent beaucoup d'histoire. Ma question a un accent différent (comment connecter la une sémantique spécifique de l' else
avec le mot-clé le choix), mais je pense qu'il devrait y avoir un lien à cette question quelque part.