students.py (1389B)
1 students = [['alice', [75,80,85,90]], ['bob',[60,65,70,75]],['charlie',[90,85,80,78]]] 2 3 4 def calculate_mean(name): 5 for i in students: 6 if i[0] == name: 7 mean = sum(i[1]) / len(i[1]) 8 return mean 9 return "not in list" 10 11 def top_student(): 12 top = 0 13 for i in students: 14 this_student_mean = calculate_mean(i[0]) 15 if this_student_mean > top: 16 top = this_student_mean 17 for i in students: 18 if calculate_mean(i[0]) == top: 19 return i[0] 20 21 def grade_spread(): 22 prev = 0 23 current = 50 24 count = 0 25 for x in range(6): 26 for i in students: 27 for j in i[1]: 28 if j <= current: 29 count = count + 1 30 print(f"{prev} - {current}: {count}") 31 prev = current 32 current = current + 10 33 34 def improvement(name): 35 for i in students: 36 if i[0] == name: 37 low = i[1][0] 38 high = 0 39 for i in i[1]: 40 if i < low: 41 low = i 42 elif i > high: 43 high = i 44 range = high - low 45 return range 46 return "not in list" 47 48 49 print(f"mean for charle: {calculate_mean('charlie')}") 50 print(f"the top student is: {top_student()}") 51 print("the grade spread is") 52 grade_spread() 53 print(f"the grade improvement of alice is: {improvement('alice')}")