Formalmente, True
es una pitón de built-in constantbool tipo.
Puede utilizar Boolean operations sobre los tipos bool (en el símbolo del pitón interactiva por ejemplo) y convert numbers en tipos bool:
>>> print not True
False
>>> print not False
True
>>> print True or False
True
>>> print True and False
False
>>> a=bool(9)
>>> print a
True
>>> b=bool(0)
>>> print b
False
>>> b=bool(0.000000000000000000000000000000000001)
>>> print b
True
Y hay "GOTCHA" potencialmente con lo que se ve y lo que el compilador de Python ve :
>>> n=0
>>> print bool(n)
False
>>> n='0'
>>> print bool(n)
True
>>> n=0.0
>>> print bool(n)
False
>>> n="0.0"
>>> print bool(n)
True
Como un indicio de cómo almacena Python bool tipos internos, que pueden emitir tipos bool a números enteros y Verdadero llegarán a ser 1 y False 0: 01
>>> print True+0
1
>>> print True+1
2
>>> print False+0
0
>>> print False+1
1
De hecho, Python bool
tipo es una subclase de tipo de Python int
:
>>> type(True)
<type 'bool'>
>>> isinstance(True, int)
True
La parte más importante de su pregunta es "¿Cuál es while True
?" es 'lo que es verdadero' y un corolario importante: ¿qué es falso?
En primer lugar, para cada idioma que esté aprendiendo, aprenda lo que la lengua considera "verdad" y "falsey". Python considera Truth ligeramente diferente que Perl Truth por ejemplo. Otros idiomas tienen slightly different concepts de verdadero/falso. ¡Conoce lo que tu lenguaje considera verdadero y falso para diferentes operaciones y control de flujo para evitar muchos dolores de cabeza después!
Hay muchos algoritmos en los que desea procesar algo hasta que encuentre lo que está buscando. De ahí el infinite loop o ciclo indefinido. Cada idioma tiende a tener su propia expresión idiomática para estos constructos. Aquí son comunes C bucles infinitos, que también trabajan para Perl:
for(;;) { /* loop until break */ }
/* or */
while (1) {
return if (function(arg) > 3);
}
La forma while True:
es común en Python para bucles indefinidos con alguna forma de romper el bucle. Aprenda Python flow control para comprender cómo se salta de los bucles while True
. A diferencia de la mayoría de los lenguajes, por ejemplo, Python puede tener una cláusula else
en un bucle. Hay un ejemplo en el último enlace.
True es una especie de alias para 1. Se puede encontrar una especie de pregunta relacionada que hice aquí http://stackoverflow.com/questions/885908/while-1-vs-for-is-there-a-speed -difference – Copas
@Copas, 'True' no es un alias para' 1'. Aunque en muchos idiomas '1' evalúa la verdad en el contexto booleano. – adamse
adamse: en * algunas * versiones de Python, 'True' ha sido un alias para' 1', ¿no? Aunque sí, en las últimas versiones de Python hay un tipo booleano real. – Ken