Cómo comprobar si un bucle ha terminado 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, aprenderás cómo determinar si un bucle ha finalizado en Python. Esto implica comprender cómo se ejecutan los bucles for y explorar diferentes técnicas para seguir el progreso de la finalización del bucle.

Comenzarás examinando un ejemplo básico de bucle for, iterando a través de una lista de frutas e imprimiendo cada una. Luego, aprenderás cómo usar una variable bandera (flag variable) para monitorear el progreso del bucle y, finalmente, descubrirás cómo aprovechar la cláusula else en conjunto con los bucles para ejecutar código solo después de que el bucle haya finalizado normalmente.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/PythonStandardLibraryGroup(["Python Standard Library"]) 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") python/DataStructuresGroup -.-> python/lists("Lists") python/PythonStandardLibraryGroup -.-> python/data_collections("Data Collections") subgraph Lab Skills python/booleans -.-> lab-559538{{"Cómo comprobar si un bucle ha terminado en Python"}} python/conditional_statements -.-> lab-559538{{"Cómo comprobar si un bucle ha terminado en Python"}} python/for_loops -.-> lab-559538{{"Cómo comprobar si un bucle ha terminado en Python"}} python/break_continue -.-> lab-559538{{"Cómo comprobar si un bucle ha terminado en Python"}} python/lists -.-> lab-559538{{"Cómo comprobar si un bucle ha terminado en Python"}} python/data_collections -.-> lab-559538{{"Cómo comprobar si un bucle ha terminado en Python"}} end

Aprende cómo se ejecutan los bucles

En este paso, aprenderás cómo se ejecutan los bucles for en Python. Los bucles son construcciones fundamentales de programación que te permiten repetir un bloque de código múltiples veces. Comprender cómo funcionan los bucles es crucial para escribir programas eficientes y efectivos.

Comencemos con un ejemplo sencillo. Crea un archivo llamado loop_example.py en tu directorio ~/project utilizando el editor VS Code.

## loop_example.py
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)

Este código itera a través de una lista de frutas e imprime cada fruta en la consola.

Para ejecutar este script, abre tu terminal en VS Code y ejecuta el siguiente comando:

python loop_example.py

Deberías ver la siguiente salida:

apple
banana
cherry

Analicemos lo que está sucediendo en el código:

  1. fruits = ["apple", "banana", "cherry"]: Esta línea crea una lista llamada fruits que contiene tres cadenas: "apple", "banana" y "cherry".
  2. for fruit in fruits:: Esta línea inicia un bucle for. El bucle itera sobre cada elemento de la lista fruits. En cada iteración, el elemento actual se asigna a la variable fruit.
  3. print(fruit): Esta línea está dentro del bucle. Imprime el valor de la variable fruit en la consola.

El bucle se ejecuta tres veces, una vez para cada fruta en la lista. En la primera iteración, fruit es "apple", por lo que se imprime "apple". En la segunda iteración, fruit es "banana", por lo que se imprime "banana". En la tercera iteración, fruit es "cherry", por lo que se imprime "cherry".

Ahora, modifiquemos el script para incluir el índice de cada fruta. Modifica el archivo loop_example.py de la siguiente manera:

## loop_example.py
fruits = ["apple", "banana", "cherry"]
for index, fruit in enumerate(fruits):
    print(f"Index: {index}, Fruit: {fruit}")

En este código modificado, utilizamos la función enumerate() para obtener tanto el índice como el valor de cada elemento en la lista.

Ejecuta el script nuevamente:

python loop_example.py

Deberías ver la siguiente salida:

Index: 0, Fruit: apple
Index: 1, Fruit: banana
Index: 2, Fruit: cherry

La función enumerate() devuelve una secuencia de pares (índice, elemento). En cada iteración, el índice se asigna a la variable index, y el elemento se asigna a la variable fruit.

Comprender cómo se ejecutan los bucles es esencial para escribir programas que puedan procesar colecciones de datos. En los siguientes pasos, aprenderás técnicas más avanzadas para controlar la ejecución de los bucles.

Establece una variable bandera (flag variable) para seguir la finalización

En este paso, aprenderás cómo usar una variable bandera (flag variable) para seguir la finalización de una tarea dentro de un bucle. Una variable bandera es una variable booleana (ya sea True o False) que indica si se ha cumplido una determinada condición. Esta es una técnica común para controlar el flujo de un programa.

Consideremos un escenario en el que deseas buscar un número específico en una lista y detener el bucle tan pronto como lo encuentres. Crea un archivo llamado flag_example.py en tu directorio ~/project utilizando el editor VS Code.

## flag_example.py
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
target = 5
found = False  ## Inicializa la variable bandera

for number in numbers:
    print(f"Checking number: {number}")
    if number == target:
        found = True
        print(f"Found the target: {target}")
        break  ## Sale del bucle

if found:
    print("Target found in the list.")
else:
    print("Target not found in the list.")

En este código, inicializamos una variable bandera llamada found en False. El bucle itera a través de la lista numbers. Si el número actual es igual al target, establecemos found en True, imprimimos un mensaje y salimos del bucle utilizando la declaración break. Después del bucle, verificamos el valor de found. Si es True, imprimimos un mensaje que indica que se encontró el objetivo. De lo contrario, imprimimos un mensaje que indica que no se encontró el objetivo.

Para ejecutar este script, abre tu terminal en VS Code y ejecuta el siguiente comando:

python flag_example.py

Deberías ver la siguiente salida:

Checking number: 1
Checking number: 2
Checking number: 3
Checking number: 4
Checking number: 5
Found the target: 5
Target found in the list.

Observa que el bucle se detiene tan pronto como se encuentra el número objetivo (5). La declaración break sale del bucle, evitando iteraciones adicionales.

Ahora, modifiquemos el script para buscar un número que no está en la lista. Cambia la variable target a 15:

## flag_example.py
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
target = 15
found = False  ## Inicializa la variable bandera

for number in numbers:
    print(f"Checking number: {number}")
    if number == target:
        found = True
        print(f"Found the target: {target}")
        break  ## Sale del bucle

if found:
    print("Target found in the list.")
else:
    print("Target not found in the list.")

Ejecuta el script nuevamente:

python flag_example.py

Deberías ver la siguiente salida:

Checking number: 1
Checking number: 2
Checking number: 3
Checking number: 4
Checking number: 5
Checking number: 6
Checking number: 7
Checking number: 8
Checking number: 9
Checking number: 10
Target not found in the list.

En este caso, el bucle itera a través de toda la lista sin encontrar el número objetivo. La variable found permanece en False, y se imprime el mensaje "Target not found in the list."

Usar una variable bandera es una forma sencilla y efectiva de seguir la finalización de una tarea dentro de un bucle. Esta técnica es útil en muchos escenarios diferentes, como buscar un elemento en una lista, validar la entrada del usuario o procesar datos de un archivo.

Utiliza la cláusula else con bucles

En este paso, aprenderás cómo utilizar la cláusula else con bucles for en Python. La cláusula else en un bucle for se ejecuta cuando el bucle se completa normalmente, es decir, cuando el bucle no se termina por una declaración break. Esto puede ser útil para realizar acciones que solo deben realizarse si el bucle se completa sin encontrar un elemento específico o sin encontrar un error.

Volvamos al ejemplo del paso anterior, donde buscábamos un número objetivo en una lista. Podemos utilizar la cláusula else para imprimir un mensaje si el número objetivo no se encuentra. Crea un archivo llamado else_example.py en tu directorio ~/project utilizando el editor VS Code.

## else_example.py
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
target = 15

for number in numbers:
    print(f"Checking number: {number}")
    if number == target:
        print(f"Found the target: {target}")
        break
else:
    print("Target not found in the list.")

En este código, la cláusula else está asociada con el bucle for. Si el bucle se completa sin encontrar el target (es decir, la declaración break no se ejecuta), se ejecuta el código dentro de la cláusula else.

Para ejecutar este script, abre tu terminal en VS Code y ejecuta el siguiente comando:

python else_example.py

Deberías ver la siguiente salida:

Checking number: 1
Checking number: 2
Checking number: 3
Checking number: 4
Checking number: 5
Checking number: 6
Checking number: 7
Checking number: 8
Checking number: 9
Checking number: 10
Target not found in the list.

Dado que el target (15) no está en la lista numbers, el bucle se completa normalmente y se ejecuta la cláusula else, imprimiendo el mensaje "Target not found in the list."

Ahora, modifiquemos el script para incluir el número objetivo en la lista. Cambia la variable target a 5:

## else_example.py
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
target = 5

for number in numbers:
    print(f"Checking number: {number}")
    if number == target:
        print(f"Found the target: {target}")
        break
else:
    print("Target not found in the list.")

Ejecuta el script nuevamente:

python else_example.py

Deberías ver la siguiente salida:

Checking number: 1
Checking number: 2
Checking number: 3
Checking number: 4
Checking number: 5
Found the target: 5

En este caso, el bucle se termina por la declaración break cuando se encuentra el target (5). Por lo tanto, la cláusula else no se ejecuta.

La cláusula else en un bucle for proporciona una forma concisa de ejecutar código cuando el bucle se completa normalmente, sin ser interrumpido por una declaración break. Esto puede ser útil para manejar casos en los que necesitas realizar una acción específica solo si una determinada condición no se cumple durante la ejecución del bucle.

Resumen

En este laboratorio (lab), aprendiste cómo se ejecutan los bucles for en Python al iterar a través de una lista de frutas e imprimir cada fruta junto con su índice. El laboratorio demostró la estructura básica de un bucle for, incluyendo el uso de la función enumerate() para acceder tanto al índice como al valor de cada elemento de la lista durante la iteración.

El ejemplo inicial iteró a través de una lista de frutas e imprimió cada fruta. La modificación subsiguiente utilizó enumerate() para imprimir tanto el índice como la fruta, lo que ilustra cómo acceder tanto a la posición como al valor de los elementos dentro de un bucle.