Los ciclos FOR son fundamentales en la programación con Python, especialmente cuando se trata de iterar sobre un conjunto de datos. A diferencia del ciclo while, donde la ejecución depende de una condición, el ciclo FOR se utiliza cuando ya conocemos el número de iteraciones o cuando queremos recorrer estructuras de datos como listas, tuplas y diccionarios. Vamos a descubrir cómo funciona esto en acción.
¿Cómo funciona un ciclo FOR con range?
En Python, el ciclo FOR es muy potente gracias a la función range, que genera un rango de números específico. Por ejemplo, si deseamos contar del 1 al 19, podemos usar range(1, 20) como sigue:
for element inrange(1,20):print(element)
Esto imprimirá los números del 1 al 19. Con range, determinamos fácilmente el inicio, el final, y también podemos especificar un paso entre cada número.
for element inrange(1,21,2):print(element)
Este ejemplo imprimirá los números impares del 1 al 19.
¿Cómo recorrer listas con FOR?
Para iterar sobre listas, simplemente usamos el ciclo FOR con la lista que nos interesa. Supongamos que tenemos una lista de números:
myList =[23,45,67,89,43]for element in myList:print(element)
Cada vuelta del ciclo imprime uno de los números en myList. Este método es directo y eficiente para procesar cada elemento de una lista.
¿Cómo funciona el FOR con tuplas y diccionarios?
Las tuplas, al igual que las listas, pueden ser fácilmente iteradas. Supongamos que tenemos una tupla de nombres:
myTuple =("Alice","Bob","Charlie")for name in myTuple:print(name)
En el caso de los diccionarios, podemos iterar sobre llaves y valores:
product ={"name":"Camisa","price":100,"stock":89}for key, value in product.items():print(f"{key}: {value}")
La función .items() permite obtener tanto las llaves como los valores, haciendo la iteración más clara y directa.
¿Cómo iterar estructuras de datos complejas: listas de diccionarios?
Un escenario común en programación es enfrentarse a listas de diccionarios, especialmente cuando se trabaja con datos de API o bases de datos.
people =[{"name":"Nico","age":34},{"name":"Zule","age":45},{"name":"Santi","age":4},]for person in people:print(person["name"])
Este ejemplo extrae y imprime el nombre de cada persona en la lista. Este formato es crucial para manejar datos complejos de manera eficiente.
¿Cómo comparar FOR y WHILE?
Un FOR se define por iterar sobre un conjunto de datos o rangos conocidos, siendo ideal para estructuras como listas y diccionarios. Contrariamente, un while se usa cuando no sabemos de antemano el número de iteraciones y queremos que un ciclo continúe ejecutándose mientras una condición es verdadera. Ambos tipos de ciclos tienen su lugar y seleccionar el apropiado depende de la situación. Siempre considera cuál es el más adecuado para tu caso de uso.
¡Continúa explorando cómo se pueden anidar ciclos dentro de otros en la siguiente clase!
La variable element suele llamarse en referencia a lo que se está recorriendo y es donde se almacena dinamicamente elemento por elemento.
Si trabajamos con una lista de gatitos podrían llegar a ver
for gato in gatos:
print(gato)
Donde se está iterando en la lista gatos y en cada iteración se almacena nuestro valor en la variable gato que se denota como singular.
Buen aporte
Nunca aclaran esto los profesores, a mis siempre me confundio si element era una palabra reservada o no. Muy buen aporte
¿Cúando usar "while" o "for" ?
while: cuando no nonozcas la cantidad de elementos a recorrer o la cantidad de iteraciones a realizar.
for: cuando conozas la cantidad de elementos a recorrer o el número de iteraciones a relaizar.
Gracias por el tip.
Buen aporte ✔👍
El bucle for en python ... El bucle for se utiliza para recorrer los elementos de un objeto iterable (lista, tupla, conjunto, diccionario)
leandro dame un ejemplo con diccionarios porfis
zoo ={'Leon':8,'Jirafa':5,'Hipo':4,}for animal, cantidad in zoo.items():print(f'En el zoo tenemos el/la {animal} con una poblacion de {cantidad}')
: mayusculas.append(i)print(mayusculas)
acortando con list comprehensions
texto ='hola Gabriel. hoy vi a jUAn Y a elvira'mayusculas =[i for i in texto if i.isupper()]print(mayusculas)
Buen ejemplo!
Like 👍
Hola
Les comparto el código de la clase
# Loops:For# https://www.w3schools.com/python/python_for_loops.asp'''
Se itera de acuerdo a un numero de condiciones dadas por algún elemento
En un while no tenemos claro el número de iteraciones que vamos a realizar, mientras que en un for iteramos sobre un conjunto de datos, sea una lista, un rango, un diccionario.'''
# Imprime los numeros del 0 al 20(cuando no se indica el valor inicial)for element inrange(20):print(element)print("*"*20)# Imprime los números de 1 al 20, porque el extremo final no se incluye
for element inrange(1,21):print(element)print("*"*20)# Iterar los elementos de la lista
my_list =[23,45,67,89,43]for element inmy_list:print(element)print("*"*20)# Iterar los elementos de una tupla
my_tuple =("Sara","Nico","Freddy")for element inmy_tuple:print(element)print("*"*20)# Iterar los elementos de un diccionario
product ={"name":"Camisa","price":100,"stock":89}# Itera sobre las llaves
for key inproduct:print(key)print("*"*20)# Itera sobre los valores
for key inproduct:print(product[key])print("*"*20)for key inproduct:print(key,"=>", product[key])print("*"*20)for key, value in product.items():print(key,"=>", value)print("*"*20)# Iterar en lista de diccionarios
people =[{"name":"Nico","age":34},{"name":"Sara","age":30},{"name":"Freddy","age":38}]for person inpeople:print(person)
Lastima que no se observan dos de tus fotos para comprender bien la información, sin embargo, creo que tienes un archivo que se esta corriendo para ver todos los nombres.
Hola Gerardo, use un diccionario basado en este json.
people =[{'name':'nico','age':'34'},{'name':'zule','age':45},{'name':'santi','age':4}]print('-----------------------------DICT-----------------------------')for person inpeople:print(person)print('-----------------------------KEY NAME-------------------------')for person inpeople:print('name:', person['name'])print('-----------------------------KEY AGE--------------------------')for person inpeople:print('age:', person['age'])print('-----------------------------KEY AND VALUE--------------------')for person inpeople: name = person['name'].capitalize() age = person['age']print(f'{name} es un estudiante de Platzi y tiene {age} años de edad')print('-----------------------------KEY------------------------------')for person in people[0].keys():print(f'Las llaves del PRIMER diccionario son: {person}')print('-----------------------------VALUES---------------------------')for person in people[0].values():print(f'los valores del PRIMER diccionario son: {person}')print('-----------------------------ITEMS----------------------------')for key, value in people[0].items():print(f'La llave es "{key}" y el valor es "{value}"')
El ciclo FOR es un ciclo WHILE TRUE con azúcar sintáctica.
--Facu
Un bucle for establece la variable iteradora en cada valor de una lista, arreglo o cadena proporcionada y repite el código en el cuerpo del bucle for para cada valor de la variable iteradora.
for i in [1, 2, 3, 4]:
print(i, end=", ")
buenísimo, me ayudaste a entender este concepto (que para mí ha sido el más complicado hasta ahora). ¿Cómo se podría quitar la coma después del 4?
Está bueno aclarar que no hace falta usar la palabra "key" o "value". Ya que como lo vimos antes como funcion de un objeto (no se porque se llaman listas), eso trae confusión. Al menos a mi
QUIERO FELICITAR A PLATZI POR EL CAMBIO DE PROFESOR, AL PROFE UN PLACER HABER PODIDO APRENDER TANTO DE SU FORMA DE ENSENAR, KUDOS PARA TODOS, GRACIAS A PLATZI HE PODIDO PROGRAMAR EN PYTHON UN ABRAZO AMIGOS VIRTUALES-
los compañeros que lo deseen, pueden encontrar el fichero 22_for.py, así como todos los demás, apuntes en Markdown y otros ejemplos hechos por mí. Gracias.
En Python, el ciclo for se usa a menudo para iterar sobre objetos iterables como listas, tuplas o cadenas.
Recorrido es el proceso de iteración a través de una serie. Si tenemos una sección de código que nos gustaría repetir un cierto número de veces, empleamos bucles for. El bucle for generalmente se usa en un objeto iterable, como una lista o la función de rango incorporada. La declaración for en Python atraviesa los elementos de una serie, ejecutando el bloque de código cada vez. La instrucción for se opone al ciclo "while", que se emplea siempre que una condición requiere que se verifique en cada repetición o cuando una pieza de código se debe repetir indefinidamente.
por valor en secuencia:{cuerpo del bucle}
# Código para encontrar la suma de los cuadrados de cada elemento de la lista usando for loop
# creando la lista de números
números =[3,5,23,6,5,1,2,9,8]
# inicializando una variable que almacenará la suma
suma_ =0# usando for loop para iterar sobre la lista
para num en números:suma_ = suma_ + núm **2print("La suma de los cuadrados es: ", sum_)
me había sentido mal porque no lo entendí, simplemente vi la clase otra vez y se sintió muy bien.
De la misma manera en que el profe uso el bucle for dentro de diccionary.item(), también se pueden trabajar con listas de tuplas directamente. :)
people=[("Leo",19,1.85),("maria",20,1.50)]# guarda temporalmente los elementos: person, age and height de cada tupla en la lista people
for person, age, height inpeople:print(person,age,height)
Gracias por tu aporte 👍
la principal diferencia con while. cual seria
Que while itera hasta que no se cumpla la condición, mientras que en el for tú das el límite de iteraciones.
La manera en que yo lo comprendí fue haciendo la traducción While => se ejecuta MIENTRAS la condición se cumple y For = > se ejecuta PARA cierta cantidad de veces
osea que no se maneja el do- while en python?
Sí existe al parecer, según lo que vi en internet: " Lo único en los bucles do while , es que su código será ejecutado al menos una vez. El código se ejecuta una vez, y luego la condición es verificada, solo después de la ejecución del código."
si existe es el mismo while True:
no entendí para nada la lógica del comando (línea 25)
for key, value in product.items():
me explican?
Es una forma de iterar en un diccionario usando los métodos de este. A diferencia de los otros ejemplos de for, este usa 2 elementos de referencia que coinciden con los elementos de la lista de pares key-value (tuplas) que resultan de aplicar el método items() al diccionario. Acá más info.
Excelente pregunta y la entendí leyendo el primer comentario en aportes, key y value son variables donde se guarda cada elemento de la tupla obtenida del método items