DacCum

py lab 6

Feb 10th, 2022 (edited)
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.42 KB | None | 0 0
  1. #main.py
  2. import dict_func
  3.  
  4. name_student = ("q", "w", "e", "r")
  5.  
  6. arr_mark = [[5, 3, 4, 5], [4, 4, 2, 3], [5, 5, 5, 4], [5, 5, 5, 5]]
  7. studentsMarks = dict()
  8. for i in range(len(arr_mark)):
  9.     x = {k: v for k, v in zip(dict_func.name_lessons, arr_mark[i])}
  10.     studentsMarks[name_student[i]] = x
  11.  
  12. print("Before sorted: ")
  13. studentsMarks = dict_func.dict_sort(studentsMarks)
  14. print("After sorted: ")
  15. dict_func.dict_print(studentsMarks)
  16.  
  17. print("Add new element or updates: ")
  18. dict_func.dict_add(studentsMarks)
  19. studentsMarks = dict_func.dict_sort(studentsMarks)
  20. dict_func.dict_print(studentsMarks)
  21.  
  22. print("Delete element: ")
  23. dict_func.dict_del_elem(studentsMarks)
  24. dict_func.dict_print(studentsMarks)
  25.  
  26. print("Names of students whose grade point average is higher than the class average:")
  27. g = "global_average_mark"
  28. average_marks = dict_func.dict_calc(studentsMarks)
  29. for i in studentsMarks.keys():
  30.     if average_marks[i] > average_marks[g]:
  31.         print(f"{i}; ", end='')
  32.  
  33. print()
  34.  
  35.  
  36. #dict_func.py
  37. name_lessons = ("lesson1", "lesson2", "lesson3", "lesson4")
  38.  
  39.  
  40. def dict_sort(dict_name):
  41.     sorted_tuple = sorted(dict_name.items(), key=lambda x: x[0])
  42.     dict_name = dict(sorted_tuple)
  43.     return dict_name
  44.  
  45.  
  46. def dict_print(dict_name):
  47.     for i, j in dict_name.items():
  48.         print(f"Student {i}: ")
  49.         for i1, j1 in j.items():
  50.             print(f"\tMark for {i1}: {j1}")
  51.  
  52.  
  53. def dict_add(dict_name):
  54.     new_student_name = input("Enter student name: ")
  55.     arr_mark = [0] * len(name_lessons)
  56.     for i in range(len(name_lessons)):
  57.         arr_mark[i] = int(input(f"\tEnter mark for {name_lessons[i]}: "))
  58.     x = {k: v for k, v in zip(name_lessons, arr_mark)}
  59.     dict_name.update({new_student_name: x})
  60.  
  61.  
  62. def dict_del_elem(dict_name):
  63.     del_name = input("Enter enter name you want to delete: ")
  64.     dict_name.pop(del_name)
  65.  
  66.  
  67. def dict_calc(dict_name):
  68.     mark_1s_n = len(name_lessons)
  69.     average_marks = [0] * len(dict_name)
  70.     global_average_mark = 0
  71.     name_keys = dict_name.keys()
  72.     count = 0
  73.     for i, j in dict_name.items():
  74.         for i1, j1 in j.items():
  75.             average_marks[count] += j1
  76.         average_marks[count] /= mark_1s_n
  77.         global_average_mark += average_marks[count]
  78.         count += 1
  79.     global_average_mark /= len(average_marks)
  80.     x = {k: v for k, v in zip(name_keys, average_marks)}
  81.     x.update({"global_average_mark": global_average_mark})
  82.     return x
  83.  
Add Comment
Please, Sign In to add comment