Python Sentencia de bucle while

En la programación de Python, la sentencia while se utiliza para ejecutar el programa de forma cíclica, es decir, bajo una condición, se ejecuta repetidamente un bloque de programa para manejar las mismas tareas que requieren un procesamiento repetido. Su forma básica es:

while 判断条件(condition):
    执行语句(statements)……

La sentencia a ejecutar puede ser una sola sentencia o un bloque de sentencias. La condición de juicio puede ser cualquier expresión; cualquier valor distinto de cero o no vacío (null) es true.

Cuando la condición de juicio es false, el bucle termina.

El diagrama de flujo de ejecución es el siguiente:

Gif que demuestra el proceso de ejecución de la sentencia while en Python

Algo más complejo:

Ejemplo

#!/usr/bin/python count = 0 while (count < 9): print 'The count is:', count count = count + 1 print "Good bye!"

Ejecutar ejemplo »

El resultado de ejecución del código anterior es:

The count is: 0
The count is: 1
The count is: 2
The count is: 3
The count is: 4
The count is: 5
The count is: 6
The count is: 7
The count is: 8
Good bye!

En la sentencia while también hay otros dos comandos importantes: continue y break, para saltar en el bucle. continue se usa para omitir esa iteración del bucle, while que break se usa para salir del bucle. Además, la "condición de juicio" también puede ser un valor constante, lo que indica que el bucle siempre se cumple. El uso específico es el siguiente:

# Uso de continue y break i = 1 while i < 10: i += 1 if i%2 > 0: # Omite la impresión cuando no es un número par continue print i # Imprime los números pares 2, 4, 6, 8, 10 i = 1 while 1: # La condición del bucle es 1, siempre se cumple print i # Imprime del 1 al 10 i += 1 if i > 10: # Sale del bucle cuando i es mayor que 10 break


Bucle infinito

Si la sentencia de condición siempre es true, el bucle se ejecutará infinitamente, como en el siguiente ejemplo:

Ejemplo

#!/usr/bin/python # -*- coding: UTF-8 -*- var = 1 while var == 1 : # Esta condición siempre es true, el bucle se ejecutará infinitamente num = raw_input("Enter a number :") print "You entered: ", num print "Good bye!"

El resultado de salida del ejemplo anterior es:

Enter a number  :20
You entered:  20
Enter a number  :29
You entered:  29
Enter a number  :3
You entered:  3
Enter a number between :Traceback (most recent call last):
  File "test.py", line 5, in <module>
    num = raw_input("Enter a number :")
KeyboardInterrupt

Nota:El bucle infinito anterior se puede interrumpir usando CTRL+C.



Usar la sentencia else en el bucle

En Python, while ... else ejecuta el bloque de sentencias else cuando la condición del bucle es false:

Ejemplo

#!/usr/bin/python count = 0 while count < 5: print count, " is less than 5" count = count + 1 else: print count, " is not less than 5"

El resultado de salida del ejemplo anterior es:

0 is less than 5
1 is less than 5
2 is less than 5
3 is less than 5
4 is less than 5
5 is not less than 5


Grupo de sentencias simples

Similar a la sintaxis de la sentencia if, si tu cuerpo del bucle while solo tiene una sentencia, puedes escribir esa sentencia en la misma línea que while, como se muestra a continuación:

Ejemplo

#!/usr/bin/python flag = 1 while (flag): print 'Given flag is really true!' print "Good bye!"

Nota:El bucle infinito anterior puedes usarCTRL+Cpara interrumpir el bucle.

Otras extensiones