El ciclo for en Python
El ciclo for
es una estructura cíclica cuya finalidad es ejecutar un código una cierta cantidad de veces. De manera general, en Python, la sintaxis de for
es:
for k in iterable:
# hacer algo
Donde iterable
es justamente eso, un iterable de Python que puede ser desde una lista hasta un string. Para la i-ésima iteración la variable de ciclo k
adoptará el valor en la i-ésima posición de iterable
.
A continuación vemos un ejemplo muy básico:
numeros = [10,20,30,40,50,60]
for numero in numeros:
print(numero)
Observe que lo único que se hace es imprimir cada elemento que compone la lista numeros
.
Revisemos ahora el siguiente ejemplo:
numeros = [10,20,30,40,50,60]
for numero in numeros:
print(numero, numero**2)
Note que la única diferencia radica, en que además del propio número, también imprimos su cuadrado.
Naturalmente, no sólo podemos "recorrer" listas, sino cualquier elemento que sea iterable, como es el caso de los strings.
nombres = ["Ana", "Lucas", "Catalina", "Javier"]
for nombre in nombres:
print("Hola " + nombre)
En ocasiones tenemos iterables dentro de otro iterable. Es posible acceder a cada elemento del sub-iterable utilizando múltiple variables de ciclo. Por ejemplo:
puntos = [(0,0), (3,5), (-1,4), (10,2)]
for x,y in puntos:
print("Px = {0}, Py ={1}".format(x,y))
Una utilidad muy común es la de la función enumerate
:
notas = [10,8,10,9,10,7]
for k,nota in enumerate(notas):
print("La nota en posición {0} es: {1}".format(k,nota))
De manera muy breve, la variable de ciclo k
devuelve la posición del elemento para cada iteración.
Algunos ejemplos utilizando ciclos for
¶
Una tabla de multiplicar¶
n = 2
for k in range(1,11):
print("{0} x {1} = {2}".format(n,k,n*k))
Un triángulo de caracteres¶
n = 10
for k in range(1,n+1):
print("*"*k)
Contando vocales¶
frase = "Anita lava la tina"
k = 0
for letra in frase.lower():
if letra in ("a","e","i","o","u"):
k += 1
print("Hay {0} vocales".format(k))
La suma de los primeros cien enteros positivos¶
suma = 0
for num in range(1,101):
suma += num
print(suma)
Comentarios
Comments powered by Disqus