Un ciclo while está iterando mientras la expresión que le sigue (condición de salida) sea evaluada como verdadera. Podemos "traducirlo" por:
mientras la <expresión> sea verdadera:
hacer algo
Un ejemplo:
n = 0
while n <= 5:
print(n)
n = n + 1
en este caso la condición de salida es que la variable n sea mayor de 5, mientras esta condición no se cumpla el ciclo seguirá iterando.
En el caso de while True la expresión siempre va a ser evaluada como verdadera por definición. Volviendo a nuestra traducción equivaldría a:
mientras verdadero sea verdadero:
hacer algo
Por lo que estamos ante un ciclo infinito que iterará hasta el fin de los tiempos (o la CPU entre en combustión...ツ), a no ser que usemos un break, return (dentro de una función/método) o terminemos el proceso de forma forzada. Lo mismo ocurre con cualquier objeto que sea evaluado como verdadero (while "a", while 0.1, while 1 etc)
En cuanto a while False, es sintaxis válida pero el ciclo no va a iniciarse siquiera ya que su condición de control es falsa de inicio obviamente. Lo mismo ocurre con cualquier objeto que sea evaluado como falso (while "", while 0, while None, etc)
Un ciclo while está iterando mientras la expresión que le sigue (condición de salida) sea evaluada como verdadera. Podemos "traducirlo" por:
mientras la <expresión> sea verdadera:
hacer algo
Un ejemplo:
n = 0
while n <= 5:
print(n)
n = n + 1
en este caso la condición de salida es que la variable n sea mayor de 5, mientras esta condición no se cumpla el ciclo seguirá iterando.
En el caso de while True la expresión siempre va a ser evaluada como verdadera por definición. Volviendo a nuestra traducción equivaldría a:
mientras verdadero sea verdadero:
hacer algo
Por lo que estamos ante un ciclo infinito que iterará hasta el fin de los tiempos (o la CPU entre en combustión...ツ), a no ser que usemos un break, return (dentro de una función/método) o terminemos el proceso de forma forzada. Lo mismo ocurre con cualquier objeto que sea evaluado como verdadero (while "a", while 0.1, while 1 etc)
En cuanto a while False, es sintaxis válida pero el ciclo no va a iniciarse siquiera ya que su condición de control es falsa de inicio obviamente. Lo mismo ocurre con cualquier objeto que sea evaluado como falso (while "", while 0, while None, etc)
La sintáxis de la sentencia while es la siguiente:
while [expresión]:
[cuerpo]
Es decir, se ejecuta el [cuerpo] de la sentencia while mientras [expresión] siga siendo evaluado como verdadero.
¿Cómo funciona un bucle while True: en Python 3?
Como True siempre seguirá siendo verdadero hasta el fin de los tiempo podemos deducir que:
while True:
[cuerpo]
Es un bucle infinito a menos, obviamente, que exista una condición para terminarlo dentro de su propio cuerpo (usando break, por ejemplo):
while True:
# ...
if [condicion] == False:
break
Si no existiera la condición de terminación, el bucle while se ejecutaría de forma indeterminada.
¿Es posible hacerlo cambiando True por False, y en tal caso cómo funcionaría?
Si tienes lo siguiente:
while False:
[cuerpo]
Simplemente nunca se va a ejecutar ya que False nunca será evaluado como verdadero, sin embargo, si estás totalmente decidido a crear un bucle infinito usando False en vez de True puedes simplemente usar una negación:
while not False:
[cuerpo]
Un poco de lógica booleana básica ;-)
What does "while True" mean?
syntax - What does "while True" mean in Python? - Stack Overflow
Can someone explain what this `while True` function is actually checking?
Whats the difference between a while loop and a for loop?
Videos
while True means loop forever. The while statement takes an expression and executes the loop body while the expression evaluates to (boolean) "true". True always evaluates to boolean "true" and thus executes the loop body indefinitely. It's an idiom that you'll just get used to eventually! Most languages you're likely to encounter have equivalent idioms.
Note that most languages usually have some mechanism for breaking out of the loop early. In the case of Python it's the break statement in the cmd == 'e' case of the sample in your question.
my question: while WHAT is True?
While True is True.
The while loop will run as long as the conditional expression evaluates to True.
Since True always evaluates to True, the loop will run indefinitely, until something within the loop returns or breaks.