Última actualización: 04 de diciembre de 2023

4.6. Bucle for

La sentencia for en Python difiere un poco de lo que uno puede estar acostumbrado en lenguajes como C o Pascal. En lugar de siempre iterar sobre una progresión aritmética de números (como en Pascal) o darle al usuario la posibilidad de definir tanto el paso de la iteración como la condición de fin (como en C), la sentencia for de Python itera sobre los ítems de cualquier secuencia (una lista o una cadena de caracteres), en el orden que aparecen en la secuencia.

4.6.1. Tipos de Bucle “for”

A continuación, se presentan algunos ejemplos del uso del bucle for:

4.6.1.1. Bucle “for” con Listas

A continuación, se presenta un ejemplo del uso del bucle for con tipos de estructuras de datos listas:

1
2
3
animales = ["gato", "perro", "serpiente"]
for animal in animales:
    print(f"El animal es: {animal}, tamaño de palabra es: {len(animal)}")

4.6.1.2. Bucle “for” con Listas y función “range”

A continuación, se presenta un ejemplo del uso del bucle for con tipos de estructuras de datos listas con la función range() y la función len():

1
2
3
4
5
oracion = "Mary entiende muy bien Python"
frases = oracion.split()  # convierte a una lista cada palabra
print("La oración analizada es:", oracion, ".\n")
for palabra in range(len(frases)):
    print(f"Palabra: {frases[palabra]}, en la frase su posición es: {palabra}")

Si se necesita iterar sobre una secuencia de números. Genera una lista conteniendo progresiones aritméticos, por ejemplo, como se hace en el fragmento de código fuente anterior.

4.6.1.3. Bucle “for” con Tuplas

A continuación, se presenta un ejemplo del uso del bucle for con tipos de estructuras de datos Tuplas:

1
2
3
conexion_bd = "127.0.0.1", "root", "123456", "nomina"
for parametro in conexion_bd:
    print(parametro)

El ejemplo anterior itera una tupla de parámetros.

4.6.1.4. Bucle “for” con Diccionarios

A continuación, se presenta un ejemplo del uso del bucle for con tipos de estructuras de datos diccionarios:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
datos_basicos = {
    "nombres": "Leonardo Jose",
    "apellidos": "Caballero Garcia",
    "cedula": "26938401",
    "fecha_nacimiento": "03/12/1980",
    "lugar_nacimiento": "Maracaibo, Zulia, Venezuela",
    "nacionalidad": "Venezolana",
    "estado_civil": "Soltero",
}
clave = datos_basicos.keys()
valor = datos_basicos.values()
cantidad_datos = datos_basicos.items()

for clave, valor in cantidad_datos:
    print(clave + ": " + valor)

El ejemplo anterior itera un diccionario con datos básicos de una persona.

4.6.1.5. Bucle “for” con “else”

Al igual que la sentencia if y el bucle while, la estructura for también puede combinarse con una sentencia else.

El nombre de la sentencia else es equivocada, ya que el bloque else se ejecutará en todos los casos, es decir, cuando la expresión condicional del bucle for sea False, (a comparación de la sentencia if).

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
db_connection = "127.0.0.1", "5432", "root", "nomina"
for parametro in db_connection:
    print(parametro)
else:
    print(
        """El comando PostgreSQL es:
$ psql -h {server} -p {port} -U {user} -d {db_name}""".format(
            server=db_connection[0],
            port=db_connection[1],
            user=db_connection[2],
            db_name=db_connection[3],
        )
    )

La sentencia else tiene la ventaja de mantener el mismo nombre y la misma sintaxis que en las demás estructuras de control.


Importante

Usted puede descargar el código usado en esta sección haciendo clic aquí.

Truco

Para ejecutar el código bucle_for.py, abra una consola de comando, acceda al directorio donde se encuentra el mismo, y ejecute el siguiente comando:

$ python bucle_for.py

Ver también

Consulte la sección de lecturas suplementarias del entrenamiento para ampliar su conocimiento en esta temática.


¿Cómo puedo ayudar?

¡Mi soporte está aquí para ayudar!

Mi horario de oficina es de lunes a sábado, de 9 AM a 5 PM. GMT-4 - Caracas, Venezuela.

La hora aquí es actualmente 7:35 PM GMT-4.

Mi objetivo es responder a todos los mensajes dentro de un día hábil.

Contrata mi increíble soporte profesional