Je vais être l'étrange voix (car toutes les réponses sont en dénonçant l'utilisation du fait qu' False == 0
et True == 1
, comme la langue des garanties) que je prétends que l'utilisation de ce fait, afin de simplifier votre code est parfaitement bien.
Historiquement, la logique (true/false) ont tendance à simplement utiliser 0
pour faux et 1
pour vrai; dans le cours de Python 2.2 cycle de vie, Guido remarqué que de trop nombreux modules commencé avec des tâches telles que l' false = 0; true = 1
et ce produit réutilisable et inutile variation (cette dernière en raison de la capitalisation du vrai et du faux était tous sur la place-des majuscules, des minuscules, certains cap-initial) et introduit la bool
sous-classe de la int
et son True
et False
des constantes.
Il y avait assez de refoulement à l'époque comme beaucoup d'entre nous craignaient que le nouveau type et constantes serait utilisé par Python débutants à restreindre la langue des capacités, mais Guido était inflexible sur le fait que nous étions juste en étant pessimiste: personne ne serait jamais comprendre Python si mal, par exemple, pour éviter de les parfaitement naturel l'utilisation de False
et True
liste des indices, ou à une sommation, ou d'autres parfaitement clair et utile d'expressions idiomatiques.
Les réponses à ce fil prouver que nous étions droite: comme nous le craignions, une totale incompréhension des rôles de ce type et les constantes a émergé, et les gens sont à éviter, et, pire!, inciter les autres à éviter, parfaitement naturelle Python constructions en faveur de l'inutile girations.
La lutte contre la marée de ce malentendu, j'exhorte tout le monde à utiliser Python comme Python, ne pas essayer de le forcer dans le moule des autres langues dont la fonctionnalité et style préféré sont tout à fait différents. En Python, le Vrai et le Faux sont à 99,9% comme le 1 et le 0, qui diffèrent exclusivement dans leur str(...)
(et, partant, repr(...)
) -- pour toute autre opération, à l'exception de stringification, n'hésitez pas à les utiliser sans contorsions. Qui va pour l'indexation, l'arithmétique, les opérations sur les bits, etc, etc, etc.