Python - Recorrer Diccionario

 
Vista:
sin imagen de perfil
Val: 43
Ha disminuido su posición en 2 puestos en Python (en relación al último mes)
Gráfica de Python

Recorrer Diccionario

Publicado por El turco (17 intervenciones) el 30/10/2018 20:55:24
Pude hacer todo pero no me queda el for como deberia ser. Q hago?

Un colegio abre su inscripción a primer año, y para ello registra para cada día de la semana la cantidad de alumnos que se inscribieron. Para eso se le solicita al usuario que ingrese los 5 dias de la semana con su respectiva cantidad. Esta información debe ser guardada en un diccionario. Luego se debe recorrer ese diccionario y se debe calcular el promedio de inscriptos guardando ese resultado ese resultado en un archivo de disco llamado "Resultado.txt". La linea a guardad en el nuevo archibo debe tener el siguiente formato:
El promedio de inscriptos entre los 5 días es de "X" alumnos


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
lunes= int(input("Ingresar cantidad alumnos del dia lunes: "))
martes= int(input("Ingresar cantidad alumnos del dia martes: "))
miercoles=int(input("Ingresar cantidad de alumnos del dia miercoles: "))
jueves=int(input("Ingresar cantidad de alumnos del día jueves: "))
viernes=int(input("Ingresar cantidad de alumnos del día viernes: "))
 
d={}
 
d['lunes']= [lunes]
d['martes']= [martes]
d['miercoles']=[miercoles]
d['jueves']=[jueves]
d['viernes']=[viernes]
 
for k,v in d.items():
    b=(lunes + martes + miercoles + jueves +viernes)
    promedio=(b)/5
    print(promedio)
 
z="El promedio de incriptos entre los 5 días es de: ",(promedio) ," alumnos"
b=open("resultado.txt","w")
b.write(str(z))
b.close()
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de abzer0x
Val: 425
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Recorrer Diccionario

Publicado por abzer0x (109 intervenciones) el 31/10/2018 00:14:56
Hola, te comparto este con algunas mejoras. Fíjate que no es necesario que declares un input para cada día, simplemente declaro el diccionario días con el nombre del día como clave y el cero como valor por defecto.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
dias={
    'lunes': 0,
    'martes': 0,
    'miércoles': 0,
    'jueves': 0,
    'viernes': 0
}
 
# Solicito la información al usuario 
for key, value in dias.items():
    dias[key] = int(input("Ingresar cantidad de alumnos del día {}: ".format(key)))
 
# Calculo el total
total = 0
for key, value in dias.items():
    total += dias[key]
 
# Calculo el promedio
promedio = total // 5
 
# Escribo la siguiente linea en el archivo
linea = "El promedio de inscriptos entre los 5 días es de: {} alumnos".format(promedio)
with open("resultado.txt", "w") as archivo:
     archivo.write(linea)

Lo anterior cumple con lo requerido en la letra del ejercicio, pero no veo utilidad en la creación de un diccionario, a menos que más adelante este se utilice para otro fin. Por lo que también se podria hacer algo como:

1
2
3
4
5
6
7
total = sum(int(input("Ingresar cantidad de alumnos del día {}: ".format(dia)))
            for dia in ('lunes', 'martes', 'miércoles', 'jueves', 'viernes')
            )
promedio = total // 5
with open("resultado.txt", "w") as archivo:
    archivo.write(
        "El promedio de inscriptos entre los 5 días es de: {} alumnos".format(promedio))
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar