Voy a ser la voz extraña (ya que todas las respuestas están denunciando el uso del hecho de que False == 0
y True == 1
, como garantiza el idioma) ya que afirmo que el uso de este hecho para simplificar su código está perfectamente bien.
Históricamente, las operaciones lógicas verdadero/falso tendían a simplemente usar 0
para falso y 1
para verdadero; En el transcurso del ciclo de vida de Python 2.2, Guido notó que muchos módulos comenzaron con asignaciones como false = 0; true = 1
y esto produjo un repetitivo y una variación inútil (esto último porque la capitalización de verdadero y falso estaba por todos lados, algunos usaban mayúsculas, algunas minúsculas, algunas mayúsculas iniciales) y así introdujo la subclase bool
de int
y sus True
y False
constantes.
Había algún retroceso en el momento, ya que muchos de nosotros el temor de que el nuevo tipo y constantes serían utilizados por los principiantes de Python a restringir las habilidades del lenguaje, pero Guido fue firme en que estábamos a ser pesimista: nadie lo haría Alguna vez entendió Python tan mal, por ejemplo, como para evitar el uso perfectamente natural de False
y True
como índices de lista, o en una sumatoria, u otras expresiones perfectamente claras y útiles.
Las respuestas a este hilo demostrar que teníamos razón: como temíamos, una total falta de comprensión de los papeles de este tipo y las constantes ha surgido, y las personas son evitar, y, peor aún !, instando a otros a evitar , construcciones Python perfectamente naturales a favor de giros inútiles.
lucha contra la corriente de tales malentendidos, insto a todos a utilizar Python Python como, no tratar de forzarlo en el molde de otras lenguas cuya funcionalidad y estilo preferido son bastante diferentes. En Python , verdadero y falso son el 99,9% como 1 y 0, que se diferencian exclusivamente en su forma str(...)
(y por lo tanto repr(...)
) - para todos los demás operación, excepto stringification, apenas siente libre al utilizarlos sin contorsiones. Eso va para la indexación, la aritmética, operaciones de bits, etc, etc, etc.
Esto es esencialmente un duplicado de http://stackoverflow.com/questions/2764017/is-false-0-and-true-1-in-python-an-implementation-detail-or-is- it-guarantee, ¡cuyas respuestas también son una lectura interesante! – EOL