Comprender los Bucles (Loops) en Python

PythonBeginner
Practicar Ahora

Introducción

En este laboratorio, obtendrá una comprensión fundamental de los bucles (loops) en Python, que son herramientas esenciales para automatizar tareas repetitivas. Comenzaremos explorando los bucles for y el concepto de iteración, aprendiendo a procesar secuencias como listas y cadenas de texto (strings).

A continuación, descubrirá cómo utilizar la función range() con bucles for para generar secuencias de números. Luego, introduciremos los bucles while para la repetición basada en condiciones. Finalmente, aprenderá a controlar el flujo tanto de los bucles for como de los while utilizando las sentencias break y continue.

Este es un Guided Lab, que proporciona instrucciones paso a paso para ayudarte a aprender y practicar. Sigue las instrucciones cuidadosamente para completar cada paso y obtener experiencia práctica. Los datos históricos muestran que este es un laboratorio de nivel principiante con una tasa de finalización del 100%. Ha recibido una tasa de reseñas positivas del 100% por parte de los estudiantes.

Introducir Bucles For e Iteración

En este paso, aprenderá sobre el bucle for en Python. Un bucle for se utiliza para iterar sobre una secuencia, como una lista, una tupla o una cadena de texto (string). Iterar significa realizar una acción para cada elemento de la secuencia, uno por uno.

Primero, usaremos un bucle for para imprimir cada elemento de una lista.

En el explorador de archivos del WebIDE a la izquierda, verá una lista de archivos. Busque y abra el archivo llamado for_loop_example.py. Agregue el siguiente código Python a este archivo:

## Define a list of numbers
numbers = [1, 2, 3, 4, 5]

## The for loop iterates over each item in the 'numbers' list.
## In each iteration, the current item is assigned to the 'number' variable.
for number in numbers:
  ## This code block is executed for each item.
  print(number)

Guarde el archivo presionando Ctrl + S.

Para ejecutar el script, abra la terminal integrada haciendo clic en Terminal -> New Terminal en la parte superior del WebIDE. Luego, ejecute el siguiente comando:

python for_loop_example.py

Debería ver la siguiente salida, con cada número impreso en una nueva línea:

1
2
3
4
5

Los bucles for también pueden iterar sobre cadenas de texto (strings). Intentemos esto en un nuevo archivo. Abra el archivo string_loop.py desde el explorador de archivos y agregue este código:

## Define a string
message = "Hello"

## Iterate over each character in the 'message' string
for char in message:
  ## Print each character
  print(char)

Guarde el archivo y ejecútelo desde la terminal:

python string_loop.py

La salida será:

H
e
l
l
o

Esto demuestra que un bucle for puede procesar cualquier secuencia, tratando una cadena de texto como una secuencia de caracteres.

Usar la Función range() con Bucles For

La función range() es una herramienta poderosa que se utiliza a menudo con los bucles for para generar una secuencia de números. Esto es útil cuando necesita repetir una acción un número específico de veces.

La función range() se puede utilizar de tres maneras:

  • range(stop): Genera números desde 0 hasta stop, sin incluir este último.
  • range(start, stop): Genera números desde start hasta stop, sin incluir este último.
  • range(start, stop, step): Genera números desde start hasta stop con un incremento de step.

Veamos cómo funciona esto. Abra el archivo range_example.py desde el explorador de archivos y agregue el siguiente código:

## Use range(stop) to print numbers from 0 to 4
print("Numbers from 0 to 4:")
for i in range(5):
  print(i)

print("\n" + "="*20 + "\n") ## A separator for clarity

## Use range(start, stop) to print numbers from 2 to 5
print("Numbers from 2 to 5:")
for i in range(2, 6):
  print(i)

print("\n" + "="*20 + "\n") ## A separator for clarity

## Use range(start, stop, step) to print odd numbers from 1 to 9
print("Odd numbers from 1 to 9:")
for i in range(1, 10, 2):
  print(i)

Guarde el archivo y ejecútelo desde la terminal:

python range_example.py

Debería ver la siguiente salida:

Numbers from 0 to 4:
0
1
2
3
4

====================

Numbers from 2 to 5:
2
3
4
5

====================

Odd numbers from 1 to 9:
1
3
5
7
9

Observe que el valor stop nunca se incluye en la secuencia. Si necesita realizar una acción un número fijo de veces pero no necesita el valor del contador, puede usar un guion bajo _ como nombre de la variable. Esta es una convención común en Python.

## This loop will execute 5 times
for _ in range(5):
  print("Hello")

Introducir Bucles While

En este paso, aprenderá sobre el bucle while. A diferencia de un bucle for que itera un número fijo de veces, un bucle while continúa ejecutándose mientras una condición especificada siga siendo True (Verdadera).

La sintaxis básica de un bucle while es:

while condition:
  ## Código a ejecutar
  ## IMPORTANTE: Actualizar una variable para que eventualmente la condición sea False

Es crucial asegurarse de que la condición eventualmente se vuelva falsa. De lo contrario, creará un bucle infinito (infinite loop), lo que hará que su programa se ejecute para siempre.

Creemos un script que utilice un bucle while para imprimir números del 1 al 5. Abra el archivo while_loop_example.py y agregue el siguiente código:

## Initialize a counter variable
count = 1

## The loop continues as long as 'count' is less than or equal to 5
while count <= 5:
  ## Print the current value of count
  print(count)
  ## Increment count by 1. This is essential to prevent an infinite loop.
  count = count + 1 ## This can also be written as count += 1

Guarde el archivo y ejecútelo desde la terminal:

python while_loop_example.py

Debería ver la siguiente salida:

1
2
3
4
5

Así es como funciona el bucle:

  1. count se inicializa en 1.
  2. Se comprueba la condición count <= 5. Como 1 <= 5 es True, se ejecuta el cuerpo del bucle.
  3. Se imprime 1 y count se incrementa a 2.
  4. La condición se comprueba de nuevo. Como 2 <= 5 es True, el bucle continúa.
  5. Este proceso se repite hasta que count se convierte en 6.
  6. Cuando count es 6, la condición 6 <= 5 es False, y el bucle termina.

Utilice bucles for cuando conozca el número de iteraciones de antemano. Utilice bucles while cuando la repetición dependa de una condición que pueda cambiar durante la ejecución.

Controlar el Flujo del Bucle con break y continue

Python proporciona dos sentencias, break y continue, para alterar el flujo normal de un bucle.

La sentencia break termina inmediatamente el bucle en el que se encuentra. La ejecución continúa en la primera sentencia después del bucle.

Veamos un ejemplo. Abra el archivo break_example.py y agregue este código, que detiene un bucle cuando se cumple una condición específica:

## Iterate through numbers from 0 to 9
for i in range(10):
  ## If i is 5, the 'if' condition becomes True
  if i == 5:
    print(f"Breaking loop at i = {i}")
    ## The break statement exits the loop immediately
    break
  print(i)

print("Loop finished.")

Guarde el archivo y ejecútelo:

python break_example.py

La salida será:

0
1
2
3
4
Breaking loop at i = 5
Loop finished.

El bucle se detuvo cuando i se convirtió en 5, y los números del 5 al 9 nunca se imprimieron.

La sentencia continue omite el resto de la iteración actual y pasa a la siguiente.

Veamos cómo se puede usar continue para omitir la impresión de un número específico. Abra el archivo continue_example.py y agregue el siguiente código:

## Initialize a counter
count = 0

## Loop while count is less than 10
while count < 10:
  count += 1
  ## If count is 5, the 'if' condition becomes True
  if count == 5:
    print(f"Skipping iteration at count = {count}")
    ## The continue statement skips the rest of this iteration
    continue
  ## This line is skipped when count is 5
  print(count)

print("Loop finished.")

Guarde el archivo y ejecútelo:

python continue_example.py

La salida será:

1
2
3
4
Skipping iteration at count = 5
6
7
8
9
10
Loop finished.

En este caso, cuando count era 5, se ejecutó la sentencia continue. Esto provocó que se omitiera la línea print(count) para esa iteración, y el bucle pasó a la siguiente iteración donde count se convirtió en 6.

Resumen

En este laboratorio, ha aprendido los fundamentos de los bucles (loops) en Python. Comenzó con el bucle for, utilizándolo para iterar sobre secuencias como listas y cadenas (strings). Luego exploró la función range() para crear secuencias numéricas para los bucles for.

A continuación, se le introdujo al bucle while para crear bucles que se ejecutan mientras una condición sea verdadera. Finalmente, aprendió a controlar la ejecución del bucle con la sentencia break para salir de un bucle prematuramente y la sentencia continue para omitir una iteración. Estos conceptos son fundamentales para escribir programas Python eficientes y potentes.