Te dejo unos comentarios! by hhvergara · Pull Request #1 · maoeneas/archivos_python · GitHub
Skip to content

Te dejo unos comentarios!#1

Open
hhvergara wants to merge 1 commit into
maoeneas:masterfrom
hhvergara:patch-1
Open

Te dejo unos comentarios!#1
hhvergara wants to merge 1 commit into
maoeneas:masterfrom
hhvergara:patch-1

Conversation

@hhvergara

Copy link
Copy Markdown

Tenes que repasar la lógica del ej2(), fijate que no estás usando el diccionario de marzo! y el bucle lo estas planteando solo para enero.
El ejercicio no te pide que especifiques qué mes es, así que no hace falta que lo pongas ;)
Te dejo una posible resolución:
stock = []
for i in range(3):
tornillos = int(input(f'Ingrese la cantidad de tornillos para este mes ({i}): \n'))
tuercas = int(input(f'Ingrese la cantidad de tuercas para este mes ({i}): \n'))
arandelas = int(input(f'Ingrese la cantidad de arandelas para este mes ({i}): \n'))

    mes = {'tornillos': tornillos,
           'tuercas': tuercas, 'arandelas': arandelas}
    stock.append(mes)
print(stock)

Fijate que dentro del for, pido que vayas ingresando los valores de tuercas, tornillos y arandelas. luego eso lo pongo dentro de mi diccionario aprovechando que las keys tienen los mismos nombres que los values, entonces me queda por ejemplo "tuercas" : tuercas. Luego hago un append a la lista de stock, que agrega ese diccionario de esa vuelta del bucle a mi lista. Como la lista tiene un rango de 3, la iteración va a ser de 3.
Es una opción, te la dejo para que la analices!

En el ejercicio N°3 estás sumando tuercas, no los tornillos, es por eso que te da 500 de resultado y no 445.
Por otra parte estás haciendo la lectura como una serie de listas, cuando el ejercicio es de diccionarios XD tenes que usar el método DictReader, como vimos en clase:
# Abrir un archivo CSV
csvfile = open('stock.csv')
# Leer todos los datos y almacenarlos en una
# lista de diccionarios
stock= list(csv.DictReader(csvfile))
Entonces despues podes hacer el for sobre la lista de diccionarios:
with open('stock.csv') as csvfile:
# Abrir un archivo CSV
# Leer todos los datos y almacenarlos en una
# lista de diccionarios
stock= list(csv.DictReader(csvfile))
stock_tornillos = 0
for diccionario in stock:
stock_tornillos += int(diccionario.get('tornillos'))

Fijate que también paso a int() lo que levanto del diccionario, porque me está levantando strings sino.
Y por ultimo, no hace falta el file.close() si estás trabajando con el with open(), eso hace que la aplicación crashee

En el ejercicio N°4 como en el 3 estás trabajando los diccionarios como listas. Esto hace mucho más difícil hacer la lógica. Tenes que utilizar DictReader, así podes despues utilizar el .get('lo_que_me_interesa'). Por ejemplo, vos podes traerte la key "ambientes" de tu diccionario, con un for en la lista de diccionarios:
with open('propiedades.csv') as csvfile:
# Abrir un archivo CSV
# Leer todos los datos y almacenarlos en una
# lista de diccionarios
propiedades= list(csv.DictReader(csvfile))
ambientes_2 = 0
ambientes_3 = 0
for propiedad in propiedades:
ambientes = propiedad.get('ambientes')
if ambientes == '2':
ambientes_2 += 1
if ambientes == '3':
ambientes_3 += 1
print("Cantidad de propiedades de 2 ambientes: ", ambientes_2 )
print("Cantidad de propiedades de 3 ambientes: ", ambientes_3 )

Te dejo los ejercicios para que los evalúes, y que los vayas ejecutando!
Un abrazo grande, cualquier cosa nos vamos hablando :D

Tenes que repasar la lógica del ej2(), fijate que no estás usando el diccionario de marzo! y el bucle lo estas planteando solo para enero.
El ejercicio no te pide que especifiques qué mes es, así que no hace falta que lo pongas ;)
Te dejo una posible resolución:
    stock = []
    for i in range(3):
        tornillos = int(input(f'Ingrese la cantidad de tornillos para este mes ({i}): \n'))
        tuercas = int(input(f'Ingrese la cantidad de tuercas para este mes ({i}): \n'))
        arandelas = int(input(f'Ingrese la cantidad de arandelas para este mes ({i}): \n'))

        mes = {'tornillos': tornillos,
               'tuercas': tuercas, 'arandelas': arandelas}
        stock.append(mes)
    print(stock)

Fijate que dentro del for, pido que vayas ingresando los valores de tuercas, tornillos y arandelas. luego eso lo pongo dentro de mi diccionario aprovechando que las keys tienen los mismos nombres que los values, entonces me queda por ejemplo "tuercas" : tuercas. Luego hago un append a la lista de stock, que agrega ese diccionario de esa vuelta del bucle a mi lista. Como la lista tiene un rango de 3, la iteración va a ser de 3.
Es una opción, te la dejo para que la analices!

En el ejercicio N°3 estás sumando tuercas, no los tornillos, es por eso que te da 500 de resultado y no 445.
Por otra parte estás haciendo la lectura como una serie de listas, cuando el ejercicio es de diccionarios XD tenes que usar el método DictReader, como vimos en clase:
    # Abrir un archivo CSV
    csvfile = open('stock.csv')
    # Leer todos los datos y almacenarlos en una 
    # lista de diccionarios
    stock= list(csv.DictReader(csvfile))
Entonces despues podes hacer el for sobre la lista de diccionarios:
    with open('stock.csv') as csvfile:
        # Abrir un archivo CSV
        # Leer todos los datos y almacenarlos en una 
        # lista de diccionarios
        stock= list(csv.DictReader(csvfile))
    stock_tornillos = 0
    for diccionario in stock:
        stock_tornillos += int(diccionario.get('tornillos'))        

Fijate que también paso a int() lo que levanto del diccionario, porque me está levantando strings sino.
Y por ultimo, no hace falta el file.close() si estás trabajando con el with open(), eso hace que la aplicación crashee

En el ejercicio N°4 como en el 3 estás trabajando los diccionarios como listas. Esto hace mucho más difícil hacer la lógica. Tenes que utilizar DictReader, así podes despues utilizar el .get('lo_que_me_interesa'). Por ejemplo, vos podes traerte la key "ambientes" de tu diccionario, con un for en la lista de diccionarios:
 with open('propiedades.csv') as csvfile:
        # Abrir un archivo CSV
        # Leer todos los datos y almacenarlos en una 
        # lista de diccionarios
        propiedades= list(csv.DictReader(csvfile))
ambientes_2 = 0
ambientes_3 = 0
for propiedad in propiedades:
    ambientes = propiedad.get('ambientes')
    if  ambientes  == '2':
        ambientes_2 += 1
    if ambientes == '3':
        ambientes_3 += 1
print("Cantidad de propiedades de 2 ambientes: ", ambientes_2 )
print("Cantidad de propiedades de 3 ambientes: ", ambientes_3 )

Te dejo los ejercicios para que los evalúes,  y que los vayas ejecutando!
Un abrazo grande, cualquier cosa nos vamos hablando :D
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant