9. Bucle for...in - manuelmarinduque/Apuntes_Python_3 GitHub Wiki
-
La utilidad de los bucles es repetir un bloque de código.
-
Los bucles alteran el flujo de ejecución.
-
Hay dos tipos de bucles:
-
Determinados (for): Se ejecutan un número determinado de veces y se sabe a priori cuántas veces se va a ejecutar el código del interior del bucle con tan sólo leer el código.
-
Indeterminados (while): Se ejecutan un número indeterminado de veces y no se sabe a priori cuántas veces se va a ejecutar el código del interior del bucle. El número de veces que se ejecutará depende del cumplimiento de una condición durante la ejecución del programa. El ciclo termina cuando la condición sea falsa o no se cumpla.
-
Su sintaxis en Python hace que su uso sea muy sencillo, flexible y muy potente a la vez.
for elemento_iterador in estructura_iterable:
# cuerpo del for
Donde estructura_iterable puede ser una lista, tupla, diccionario, String o un rango (similar a otros LdP), entrando al cuerpo del for tantas veces como elementos contenga la estructura iterable. El uso de estructuras iterables o de un rango depende del escenario que se tenga.
for i in ["Primavera", "Otoño", "Invierno"]:
print("Hola")
# Salida: Hola Hola Hola
Cuando el flujo de ejecución llega al bucle for, se ejecuta de la siguiente manera:
En la primera iteración i = Primavera y entra al cuerpo a imprimir Hola. En la segunda iteración i = Otoño y entra al cuerpo a imprimir Hola. En la tercera iteración i = Invierno y entra al cuerpo a imprimir Hola. Al no haber más elementos en la lista, se termina el ciclo.
Caso de aplicación: Es útil recorrer un String caracter a caracter con un bucle for y validar así una dirección de correo electrónico. Esto es posible porque un String es una estructura iterable conformada por un conjunto de caracteres.
Validar que una dirección de correo electrónico es correcta al tener el caracter "@":
valido = False
email = input("Introduce tu email")
for i in email:
if (i=="@"):
valido = True
if valido: # valido = True es implícito
print("Email correcto")
else:
print("Email incorrecto")
Tomado de Bucles III. Vídeo 16
range(pos_inicial , pos_final (no se incluye) , espacios)
La función range permite utilizar el bucle for con conteo numérico, similar a otros LdP:
for i in range(5):
print(i)
# Salida: 0,1,2,3,4
for i in range(5,50,3):
print(i)
Validar si una dirección de correo electrónico es correcta al tener el caracter "@", utilizando el tipo range y la función len():
valido = False
email = input("Introduce tu email")
for i in range(len(email)):
if email[i] == "@": # Un String es una estructura iterable.
valido = True
if valido:
print("Email correcto")
else:
print("Email incorrecto")
Se puede convertir un rango de valores definidos a una lista mediante la instrucción list():
lista = list(range(0,50,2))
print(lista)