Bucle while

Python SELF ES
Nivel 4 , Lección 3
Disponible

9.1 Bucle condicional

El bucle for es perfecto para cuando sabemos exactamente cuántas veces queremos ejecutar un bloque de comandos. Pero eso no siempre es así. Aproximadamente la mitad de las veces necesitamos ejecutar el bloque de comandos mientras se cumple cierta condición (regla).

Para eso está el bucle while en Python. Su estructura general es incluso más sencilla que la del bucle for:


while condición:
    comando1 
    comando2 
    comandoN 

El bucle se ejecutará mientras la condición sea verdadera.

¡Importante! Para que el bucle no se ejecute infinitamente, es necesario que dentro del bloque de comandos suceda algo que afecte a la condición para que eventualmente se vuelva falsa y el bucle termine.

Ejemplo:

Ejemplo Explicación

count = 0
while count < 5:
    print(count)
    count += 1
El bucle imprimirá los números 0 1 2 3 4

En el bucle while se repiten infinitamente dos cosas:

  • Se evalúa la condición.
  • Se ejecuta el bloque de comandos.

Si la condición era verdadera, se ejecuta el bloque de comandos. Si de repente la condición es falsa (incluso si el bloque de comandos no se ejecutó ni una vez), el bucle termina.

Otro ejemplo del bucle while, combinado con la entrada de una cantidad desconocida de datos por el usuario:

Ejemplo Explicación

user_input = ""
while user_input != "exit":
    user_input = input("Ingrese 'exit' para salir: ")
    print(user_input)
El bucle imprimirá en pantalla todos los datos hasta que el usuario ingrese la palabra exit. Después de eso, el bucle la imprimirá y terminará.

9.2 Operador break

En Python, el operador break se usa para detener inmediatamente la ejecución de un bucle while o un bucle for. Este operador resulta extremadamente útil en situaciones donde es necesario salir del bucle antes de su finalización normal por condición.

El uso de break aumenta la flexibilidad en el control del flujo de ejecución del programa, permitiendo reaccionar a condiciones dinámicamente cambiantes durante la ejecución.

Uso principal:


for num in range(10):
    if num == 5:
        break   # Detiene el bucle tan pronto como num llega a 5
    print(num)
        

En este ejemplo, el bucle imprimirá los números del 0 al 4. Tan pronto como num alcanza 5, el bucle se detiene con el operador break.

Uso en bucles infinitos:


while True:
    response = input("Ingrese 'exit' para salir: ")
    if response == 'exit':
        break              

Aquí break se usa para salir de un bucle infinito cuando el usuario ingresa 'exit'.

El operador break también se usa frecuentemente para interrumpir la ejecución de bucles anidados, manejar situaciones excepcionales donde se requiere una detención inmediata de acciones, así como para interrumpir procesos en aplicaciones multi-hilo o de red.

Por ejemplo, en tareas de búsqueda o clasificación, donde después de encontrar el elemento necesario, seguir ejecutando el bucle no tiene sentido:


elements = [1, 2, 3, -99, 5]
# Búsqueda del primer elemento negativo
for element in elements:
    if element < 0:
        print("Elemento negativo encontrado: ", element)
        break              

Las mejores prácticas incluyen usar break con inteligencia, para no complicar la lógica del programa y no hacer que sea difícil de entender. Es una buena práctica comentar las razones de la interrupción del bucle, especialmente si no son obvias a partir del contexto.

El uso de break debe estar justificado y ser razonable. Por ejemplo, para mejorar la legibilidad y eficiencia del código, y no simplemente por romper la lógica. El uso efectivo de este operador puede mejorar significativamente el rendimiento de los programas, especialmente en algoritmos con cálculos intensivos.

9.3 Operador continue

El operador continue en Python es una herramienta poderosa para controlar el flujo de ejecución en los bucles. Omite la parte restante del código en la iteración actual del bucle y pasa a la siguiente iteración. Este operador se utiliza a menudo en los bucles for y while para ignorar ciertas condiciones sin interrumpir todo el bucle.

Fundamentos del uso del operador continue

Así es como funciona continue en un bucle simple:


for i in range(10):
    if i % 2 == 0:
        continue
    print(i)              

En este ejemplo, el bucle imprime solo números impares del 1 al 9. Cada vez que i resulta par (se divide por 2 sin resto), el operador continue se activa, omitiendo la llamada a la función print() y pasa a la siguiente iteración.

Aplicación de continue en escenarios reales

Filtrado de datos: continue se puede utilizar para filtrar datos preliminarmente antes de realizar operaciones más complejas en el bucle.


data = ["apple", "banana", "", "cherry", "date"]
for fruit in data:
    if not fruit:
        continue  # Saltar cadenas vacías
    print(fruit.capitalize())               

Omitir condiciones específicas: Es especialmente útil en situaciones donde es necesario omitir ciertos elementos basados en condiciones complejas.


    scores = [92, 85, 99, 78, 82, 100, 67, 88]
    for score in scores:
        if score < 80:
            continue  # Omitir puntajes bajos
        print("Felicidades, tu puntaje es: ", score)               

El operador continue en Python ofrece una forma elegante de simplificar el código y hacerlo más legible al omitir elementos no deseados en las iteraciones. El uso excesivo de continue puede dificultar la comprensión de qué datos están siendo procesados por el bucle, especialmente en bucles complejos con múltiples condiciones. Mantén un equilibrio razonable.

Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION