8.1 Bucle for
Que puedas ejecutar un grupo de comandos bajo una condición dada está genial. ¿Y qué pasa si quiero ejecutar una acción 100 veces? ¿Cómo lo hago?
Para eso, en el lenguaje Python tenemos los bucles. Y para nuestra tarea, el bucle for viene perfecto. El formato general del operador for es el siguiente:
for variable in lista_de_valores:
comando1
comando1
comandoN
Donde lista_de_valores es un conjunto de valores: una lista, una cadena, un diccionario (de eso hablaremos más tarde).
La variable toma secuencialmente los valores de lista_de_valores, y para cada uno de ellos se ejecuta el bloque de comandos.
Ejemplo:
| Ejemplo | Explicación |
|---|---|
|
1. A la variable fruit se le asigna el valor "apple" y se ejecuta el comando print(fruit ) 2. A la variable fruit se le asigna el valor "banana" y se ejecuta el comando print(fruit ) 3. A la variable fruit se le asigna el valor "cherry" y se ejecuta el comando print(fruit ) |
Así funciona el bucle:
Si en la lista después de la palabra in hay 10 valores, entonces el bloque de comandos se ejecutará 10 veces.
Para cada valor en lista_de_valores ocurren dos cosas:
- Se le asigna a la variable del bucle (que se indica después de la palabra
for) el siguiente valor de lista_de_valores. - Luego se ejecuta el bloque de comandos.
Otro ejemplo:
| Ejemplo | Explicación |
|---|---|
|
El bucle mostrará los números en pantalla: 1 2 3 4 5 6 7 8 9 10 |
8.2 Estableciendo un rango — range
En el último ejemplo, viste que es muy fácil mostrar 10 números en pantalla. Pero, ¿qué pasa si queremos ejecutar el bucle 100 veces? ¿O 1000?
Por supuesto, hay una solución para eso. En Python, existe una función especial llamada range() para generar secuencias de números, que en combinación con el bucle for se convierte en una poderosa herramienta para manejar tareas repetitivas.
La función range() puede ser utilizada de varias maneras, dependiendo de la cantidad de argumentos que se le pasen.
Usos básicos de range():
Un argumento: range(n) genera una secuencia de 0 a n-1. Es útil cuando necesitas ejecutar una acción un número determinado de veces.
for i in range(5):
print(i) # Mostrará los números del 0 al 4
Dos argumentos: range(start, stop) genera una secuencia de start a stop-1. Es útil para empezar la iteración desde un número específico.
for i in range(1, 6):
print(i) # Mostrará los números del 1 al 5
Tres argumentos: range(start, stop, step) añade un tercer argumento step, que define el intervalo entre los números de la secuencia.
for i in range(0, 10, 2):
print(i) # Mostrará los números pares del 0 al 8
Bucles inversos: range() puede generar números en orden inverso, lo que permite realizar iteraciones inversas.
for i in range(10, 0, -1):
print(i) # Mostrará los números del 10 al 1
La función range() combinada con el bucle for ofrece una herramienta flexible para controlar las iteraciones en Python. Entender sus capacidades te ayuda a crear bucles más eficientes y entendibles, que son una parte esencial de cualquier programa.
8.3 Bucle por lista
Si quieres ejecutar un grupo de acciones sobre diferentes valores y la función range() no es adecuada para ti, siempre puedes agrupar esos valores en una lista usando corchetes. El formato general de esta operación se ve así:
for variable in [val1, val2, …, valN]:
comando1
comando1
comandoN
Simplemente enumeras los valores separados por comas, y el bucle se ejecutará para cada uno de ellos, mientras que la variable toma cada valor de forma secuencial. Ejemplo:
| Ejemplo | Explicación |
|---|---|
|
El bucle mostrará en pantalla las cadenas: apple banana cherry |
Puedes especificar números en la lista, incluso directamente en el bucle después de la palabra in:
| Ejemplo | Explicación |
|---|---|
|
El bucle mostrará en pantalla los números: 0.99 2.75 0.25 |
Incluso puedes enumerar objetos de cualquier tipo en la lista:
| Ejemplo | Explicación |
|---|---|
|
El bucle mostrará en pantalla las cadenas: 0.99 apple -1 True |
GO TO FULL VERSION