D'autre clause sur Python, tandis que le rapport

J'ai remarqué que le code suivant est légal en Python. Ma question est pourquoi? Est-il une raison spécifique?

n = 5
while n != 0:
    print n
    n -= 1
else:
    print "what the..."
  • C'est parce que la plupart des gens évitent de cette construction. 🙂 Je crois que Guido mentionné au cours de la Py3k processus qui, à tout le moins, le choix du mot else pour cet usage avait été une très mauvaise idée, et qu'il ne serait pas faire plus de ceux-ci.
  • Chevalier - ouais, tentant quoiqu'il en soit, il serait probablement quelque chose que j'ai entendu le premier coup d'œil. Tout autre mauvais sap serait d'aller et de regarder la langue spec, ou remonter dans le temps et de poster une question ici, sur la Sta - heeeeey...
  • Ce serait un meilleur mot que d'autre?
  • Rien de vraiment, je ne pense pas que le binaire implication de "else" convient à une construction de boucle très bien.
  • L'idée derrière le choix de 'else' est que cette construction soit disant est souvent utilisé en conjonction avec un 'si X: pause à l'intérieur de la boucle while. Depuis le 'else' clause est exécutée si nous ne brisons pas sortir de la boucle, il forme un peu-sorta 'else' le 'si'.
  • Je suis tombé sur ce il y a quelques minutes, c'est ce que j'ai rassemblé.
  • Ils devraient renommer after:.
  • Après n'est pas vraiment approprié, car il ne serait pas exécuter si vous avez utilisé "pause" ou "retour" pour quitter la boucle. Je dis toujours aux gens qui ont de la difficulté à se rappeler de l'utilisation, "Si vous êtes à la sortir de la boucle, vous avez la possibilité de faire quelque chose juste avant votre instruction break. Si vous êtes épuisant votre collection (dans une boucle for) ou de la rupture de votre condition de boucle (dans une boucle while), le 'else' clause est votre endroit pour conclure."
  • Difficile de nom, mais si j'ai bien entendu, Raymond Hettinger suggéré nobreak: comme un nom ici (d'ailleurs, cela fonctionne aussi dans for boucles).
  • Double Possible de Pourquoi python utilisation 'd'autre' après les boucles for et while?

InformationsquelleAutor Ivan | 2010-07-21