Menu
Coddy logo textTech

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:
	code

El 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.

challenge icon

Desafío

Principiante

Escribe 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:
    code

Utiliza 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)  # 32

Pruébalo tú mismo

quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentals