Advertisement
GastonPalazzo

Bucles_1 - Ej-10

Aug 31st, 2020
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.16 KB | None | 0 0
  1. #imports
  2. from random import randint
  3.  
  4. #funciones
  5. def promedios(dicAlumnos):
  6.     promPorMateria={'Alumno 0':{'Matematicas':0, 'Fisica':0, 'Quimica':0}, 'Alumno 1':{'Matematicas':0, 'Fisica':0, 'Quimica':0}, 'Alumno 2':{'Matematicas':0, 'Fisica':0, 'Quimica':0}}
  7.     promGeneralPorAlumno={'Alumno 0':0, 'Alumno 1':0, 'Alumno 2':0}
  8.     #x materia
  9.     for alumno, datos in dicAlumnos.items():
  10.         sumaGeneral=0
  11.         for materia, notas in datos.items():
  12.             suma=0
  13.             for nota in notas:
  14.                 suma+=nota
  15.             promPorMateria[alumno][materia]=suma/3
  16.             sumaGeneral+=suma
  17.         #general
  18.         promGeneralPorAlumno[alumno]=sumaGeneral/9
  19.     r=[promPorMateria, promGeneralPorAlumno]
  20.     return r
  21.  
  22. def califAlfa(promPorMat, promGeneral):
  23.     promPorMatAlfa={'Alumno 0':{'Matematicas':'', 'Fisica':'', 'Quimica':''}, 'Alumno 1':{'Matematicas':'', 'Fisica':'', 'Quimica':''}, 'Alumno 2':{'Matematicas':'', 'Fisica':'', 'Quimica':''}}
  24.     promGeneralAlfa={'Alumno 0':'', 'Alumno 1':'', 'Alumno 2':''}
  25.     #x materia (alfa)
  26.     for alumno, datos in promPorMat.items():
  27.         for materia, nota in datos.items():
  28.             if nota>=90:
  29.                 promPorMatAlfa[alumno][materia]='A'
  30.             elif 90>=nota>=80:
  31.                 promPorMatAlfa[alumno][materia]='B'
  32.             elif 80>=nota>=70:
  33.                 promPorMatAlfa[alumno][materia]='C'
  34.             elif 70>=nota>=60:
  35.                 promPorMatAlfa[alumno][materia]='D'
  36.             else:
  37.                 promPorMatAlfa[alumno][materia]='F'
  38.     #general (alfa)
  39.     for alumno, notaGeneral in promGeneral.items():
  40.         if notaGeneral>=90:
  41.             promGeneralAlfa[alumno]='A'
  42.         elif 90>=notaGeneral>=80:
  43.             promGeneralAlfa[alumno]='B'
  44.         elif 80>=notaGeneral>=70:
  45.             promGeneralAlfa[alumno]='C'
  46.         elif 70>=notaGeneral>=60:
  47.             promGeneralAlfa[alumno]='D'
  48.         else:
  49.             promGeneralAlfa[alumno]='F'
  50.     #cs
  51.     r=[promPorMatAlfa, promGeneralAlfa]
  52.     return r  
  53.  
  54. #main
  55. print('\n|Ej 10|')
  56.  
  57. #imput de notas ↓
  58. notasDeAlumnosPorMateria={
  59.     'Alumno 0':{
  60.         'Matematicas':[randint(1,100), randint(1,100), randint(1,100)],
  61.         'Fisica':[randint(1,100), randint(1,100), randint(1,100)],
  62.         'Quimica':[randint(1,100), randint(1,100), randint(1,100)]
  63.         },
  64.     'Alumno 1':{
  65.         'Matematicas':[randint(1,100), randint(1,100), randint(1,100)],
  66.         'Fisica':[randint(1,100), randint(1,100), randint(1,100)],
  67.         'Quimica':[randint(1,100), randint(1,100), randint(1,100)]
  68.         },
  69.     'Alumno 2':{
  70.         'Matematicas':[randint(1,100), randint(1,100), randint(1,100)],
  71.         'Fisica':[randint(1,100), randint(1,100), randint(1,100)],
  72.         'Quimica':[randint(1,100), randint(1,100), randint(1,100)]
  73.         }
  74.     }
  75.  
  76. #cs ↓
  77. temp=promedios(notasDeAlumnosPorMateria)
  78. notasEnLetra = califAlfa(temp[0], temp[1])
  79.  
  80. for alumno, datos in notasEnLetra[0].items():
  81.     print(f'\n{alumno}')
  82.     for materia, nota in datos.items():
  83.         print(f'.{materia}: {nota}')
  84.     print(f'\tPromedio general: {notasEnLetra[1][alumno]}')
  85.  
  86. print('\nFin de la ejecucion!\n')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement