Bucle While
Parte de la sección Fundamentals del Journey de Python de Coddy — lección 36 de 77.
Un bucle while es diferente del bucle for. Un bucle for nos permite iterar sobre un range específico, mientras que un bucle while nos permite seguir iterando mientras se cumpla una cierta condición.
Para usar un bucle while, escribe:
while condition:
codeEl código se ejecutará solo si la condición es True.
La condición se forma típicamente utilizando operadores de comparación como <= (menor o igual que), >= (mayor o igual que), < (menor que), > (mayor que) o == (igual a). El bucle continúa ejecutándose mientras esa comparación se evalúe como True, y se detiene tan pronto como se vuelve False.
Dentro del cuerpo del bucle, normalmente necesitas actualizar la variable que se está comprobando. Esto se hace con operadores de asignación compuesta como += (sumar y asignar), -= (restar y asignar), *= (multiplicar y asignar), o /= (dividir y asignar). Por ejemplo, x *= 2 es una abreviatura de x = x * 2. Sin actualizar la variable, la condición nunca cambiaría y el bucle se ejecutaría indefinidamente.
Hay muchos casos de uso en los que un while resolvería el problema, pero el bucle for no lo haría.
Por ejemplo, considera este problema:
Encuentra la potencia de 2 más pequeña que sea mayor que un número dado.
Para resolverlo, utilizaremos un bucle while que multiplicará repetidamente la potencia actual de 2 por 2 hasta que sea mayor que el número dado:
number = 27
power_of_two = 1
while power_of_two <= number:
power_of_two *= 2
print(power_of_two)Aquí, power_of_two <= number es la condición que utiliza un operador de comparación, y power_of_two *= 2 actualiza la variable en cada iteración utilizando un operador de asignación aumentada. Una vez que power_of_two supera a number, la condición se vuelve False y el bucle se detiene.
Desafío
PrincipianteEscribe un programa que reciba una entrada, un número float.
Usa un bucle while para dividir la entrada entre 2 siempre que el número sea mayor o igual a 3.5.
Imprime el primer número que sea menor que 3.5.
Hoja de referencia
Un bucle while se ejecuta mientras una condición sea True:
while condition:
codeUtiliza operadores de comparación para formar la condición: ==, <, >, <=, >=.
Utiliza operadores de asignación aumentada para actualizar la variable en cada iteración: +=, -=, *=, /=.
number = 27
power_of_two = 1
while power_of_two <= number:
power_of_two *= 2 # actualizar la variable para evitar un bucle infinito
print(power_of_two) # 32Pruébalo tú mismo
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentals
4Operadores Parte 2
Operadores lógicos Parte 1Operadores lógicos Parte 2Repaso - Lógica simpleOperadores lógicos Parte 3Operadores lógicos Parte 47Calculadora para dividir la cuenta
Mensaje de bienvenidaObtener la entrada de datos10FizzBuzz con un giro
Descripción general del juegoLa función FizzBuzz2Variables
NúmerosStringBooleanConvenciones de nomenclaturaVariables vacíasRepaso - Inicializar variables8Bucles
Bucle ForBucle WhileBreakContinueRepaso - FactorialLa función RangeBucle anidadoRepaso - Entrada dinámica3Operadores Parte 1
Operadores aritméticosOperador móduloAtajos aritméticosResumen - Matemáticas simplesOperadores de comparación9Funciones
Declarar una funciónArgumentosRetornoResumen - Función SigmaResumen - Función de validaciónValores por defecto