Cómo comprobar si un bucle se interrumpió en Python

PythonPythonBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio (lab), aprenderás cómo determinar si un bucle en Python se interrumpió prematuramente utilizando diferentes técnicas. El laboratorio se centra en comprender la instrucción break y cómo se puede utilizar para salir de un bucle basado en una condición específica.

Explorarás dos métodos: establecer una variable bandera (flag variable) antes de interrumpir y detectar la finalización con la cláusula else. El primer método implica inicializar una variable bandera y establecerla en True cuando se ejecuta la instrucción break. El segundo método aprovecha la cláusula else, que se ejecuta solo si el bucle se completa normalmente sin encontrar una instrucción break. Al final de este laboratorio, podrás comprobar de manera efectiva si un bucle se interrumpió en Python y manejar diferentes escenarios en consecuencia.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) python/BasicConceptsGroup -.-> python/booleans("Booleans") python/ControlFlowGroup -.-> python/conditional_statements("Conditional Statements") python/ControlFlowGroup -.-> python/for_loops("For Loops") python/ControlFlowGroup -.-> python/break_continue("Break and Continue") subgraph Lab Skills python/booleans -.-> lab-559539{{"Cómo comprobar si un bucle se interrumpió en Python"}} python/conditional_statements -.-> lab-559539{{"Cómo comprobar si un bucle se interrumpió en Python"}} python/for_loops -.-> lab-559539{{"Cómo comprobar si un bucle se interrumpió en Python"}} python/break_continue -.-> lab-559539{{"Cómo comprobar si un bucle se interrumpió en Python"}} end

Comprender la instrucción break

En este paso, aprenderás sobre la instrucción break en Python. La instrucción break se utiliza para salir de un bucle de forma prematura. Esto puede ser útil cuando deseas detener la iteración de un bucle basado en una determinada condición.

Comencemos creando un archivo de Python llamado break_example.py en tu directorio ~/project utilizando el editor VS Code.

## Filename: break_example.py
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

for number in numbers:
    if number > 5:
        break  ## Exit the loop when number is greater than 5
    print(number)

En este código:

  • Tenemos una lista de números del 1 al 10.
  • Iteramos a través de la lista utilizando un bucle for.
  • Dentro del bucle, verificamos si el number actual es mayor que 5.
  • Si el número es mayor que 5, utilizamos la instrucción break para salir del bucle.
  • De lo contrario, imprimimos el number actual.

Ahora, ejecutemos el script utilizando el siguiente comando en la terminal:

python break_example.py

Deberías ver la siguiente salida:

1
2
3
4
5

Como puedes ver, el bucle dejó de ejecutarse cuando se encontró el número 6 porque es mayor que 5. La instrucción break hizo que el bucle terminara en ese punto.

La instrucción break se puede utilizar tanto en bucles for como en bucles while. Proporciona una forma de salir de un bucle basado en una condición específica, lo que te permite controlar el flujo de tu programa.

Establecer una bandera (flag) antes de interrumpir

En este paso, aprenderás cómo utilizar una variable bandera (flag variable) para indicar si se ha ejecutado una instrucción break dentro de un bucle. Esto puede ser útil cuando necesitas saber si un bucle se completó por completo o fue interrumpido.

Creemos un archivo de Python llamado flag_example.py en tu directorio ~/project utilizando el editor VS Code.

## Filename: flag_example.py
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
found = False  ## Initialize a flag variable

for number in numbers:
    if number > 5:
        found = True  ## Set the flag to True when number is greater than 5
        break  ## Exit the loop
    print(number)

if found:
    print("Found a number greater than 5")
else:
    print("No number greater than 5 was found")

En este código:

  • Inicializamos una variable booleana found en False. Esta variable actuará como nuestra bandera (flag).
  • Iteramos a través de la lista de números.
  • Si encontramos un número mayor que 5, establecemos found en True y luego salimos del bucle con break.
  • Después del bucle, verificamos el valor de found. Si es True, significa que encontramos un número mayor que 5 y salimos del bucle. De lo contrario, significa que el bucle se completó sin encontrar ningún número mayor que 5.

Ahora, ejecutemos el script utilizando el siguiente comando en la terminal:

python flag_example.py

Deberías ver la siguiente salida:

1
2
3
4
5
Found a number greater than 5

Ahora, modifiquemos la lista numbers para que no incluya ningún número mayor que 5:

## Filename: flag_example.py
numbers = [1, 2, 3, 4, 5]
found = False  ## Initialize a flag variable

for number in numbers:
    if number > 5:
        found = True  ## Set the flag to True when number is greater than 5
        break  ## Exit the loop
    print(number)

if found:
    print("Found a number greater than 5")
else:
    print("No number greater than 5 was found")

Ejecutemos el script nuevamente:

python flag_example.py

Deberías ver la siguiente salida:

1
2
3
4
5
No number greater than 5 was found

Este ejemplo demuestra cómo se puede utilizar una variable bandera (flag variable) para rastrear si se ejecutó una instrucción break, lo que te permite tomar diferentes acciones según si el bucle se completó por completo o fue interrumpido.

Detectar la finalización con la cláusula else

En este paso, aprenderás cómo utilizar la cláusula else con un bucle for para detectar si el bucle se completó sin encontrar una instrucción break. Esto puede ser una forma limpia y elegante de ejecutar código solo cuando un bucle finaliza normalmente.

Creemos un archivo de Python llamado else_example.py en tu directorio ~/project utilizando el editor VS Code.

## Filename: else_example.py
numbers = [1, 2, 3, 4, 5]

for number in numbers:
    if number > 5:
        print("Found a number greater than 5")
        break
    print(number)
else:
    print("No number greater than 5 was found")

En este código:

  • Iteramos a través de la lista de números.
  • Si encontramos un número mayor que 5, imprimimos un mensaje y salimos del bucle con break.
  • La cláusula else está asociada con el bucle for. Se ejecutará solo si el bucle se completa sin encontrar una instrucción break.

Ahora, ejecutemos el script utilizando el siguiente comando en la terminal:

python else_example.py

Deberías ver la siguiente salida:

1
2
3
4
5
No number greater than 5 was found

La cláusula else se ejecutó porque el bucle se completó sin encontrar ningún número mayor que 5.

Ahora, modifiquemos la lista numbers para que incluya un número mayor que 5:

## Filename: else_example.py
numbers = [1, 2, 3, 4, 5, 6]

for number in numbers:
    if number > 5:
        print("Found a number greater than 5")
        break
    print(number)
else:
    print("No number greater than 5 was found")

Ejecutemos el script nuevamente:

python else_example.py

Deberías ver la siguiente salida:

1
2
3
4
5
Found a number greater than 5

En este caso, la cláusula else no se ejecutó porque el bucle fue terminado por la instrucción break.

La cláusula else con un bucle for proporciona una forma concisa de ejecutar código cuando un bucle se completa normalmente, sin ser interrumpido por una instrucción break. Esto puede hacer que tu código sea más legible y fácil de entender.

Resumen

En este laboratorio (lab), aprendiste cómo utilizar la instrucción break en Python para salir de un bucle antes de tiempo basado en una condición específica. La instrucción break se puede utilizar tanto en bucles for como en bucles while para controlar el flujo de tu programa.

Además, exploraste cómo utilizar una variable bandera (flag variable) para rastrear si se ha ejecutado una instrucción break dentro de un bucle, lo que te permite determinar si el bucle se completó por completo o fue interrumpido.