Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #main.py
- import dict_func
- name_student = ("q", "w", "e", "r")
- arr_mark = [[5, 3, 4, 5], [4, 4, 2, 3], [5, 5, 5, 4], [5, 5, 5, 5]]
- studentsMarks = dict()
- for i in range(len(arr_mark)):
- x = {k: v for k, v in zip(dict_func.name_lessons, arr_mark[i])}
- studentsMarks[name_student[i]] = x
- print("Before sorted: ")
- studentsMarks = dict_func.dict_sort(studentsMarks)
- print("After sorted: ")
- dict_func.dict_print(studentsMarks)
- print("Add new element or updates: ")
- dict_func.dict_add(studentsMarks)
- studentsMarks = dict_func.dict_sort(studentsMarks)
- dict_func.dict_print(studentsMarks)
- print("Delete element: ")
- dict_func.dict_del_elem(studentsMarks)
- dict_func.dict_print(studentsMarks)
- print("Names of students whose grade point average is higher than the class average:")
- g = "global_average_mark"
- average_marks = dict_func.dict_calc(studentsMarks)
- for i in studentsMarks.keys():
- if average_marks[i] > average_marks[g]:
- print(f"{i}; ", end='')
- print()
- #dict_func.py
- name_lessons = ("lesson1", "lesson2", "lesson3", "lesson4")
- def dict_sort(dict_name):
- sorted_tuple = sorted(dict_name.items(), key=lambda x: x[0])
- dict_name = dict(sorted_tuple)
- return dict_name
- def dict_print(dict_name):
- for i, j in dict_name.items():
- print(f"Student {i}: ")
- for i1, j1 in j.items():
- print(f"\tMark for {i1}: {j1}")
- def dict_add(dict_name):
- new_student_name = input("Enter student name: ")
- arr_mark = [0] * len(name_lessons)
- for i in range(len(name_lessons)):
- arr_mark[i] = int(input(f"\tEnter mark for {name_lessons[i]}: "))
- x = {k: v for k, v in zip(name_lessons, arr_mark)}
- dict_name.update({new_student_name: x})
- def dict_del_elem(dict_name):
- del_name = input("Enter enter name you want to delete: ")
- dict_name.pop(del_name)
- def dict_calc(dict_name):
- mark_1s_n = len(name_lessons)
- average_marks = [0] * len(dict_name)
- global_average_mark = 0
- name_keys = dict_name.keys()
- count = 0
- for i, j in dict_name.items():
- for i1, j1 in j.items():
- average_marks[count] += j1
- average_marks[count] /= mark_1s_n
- global_average_mark += average_marks[count]
- count += 1
- global_average_mark /= len(average_marks)
- x = {k: v for k, v in zip(name_keys, average_marks)}
- x.update({"global_average_mark": global_average_mark})
- return x
Add Comment
Please, Sign In to add comment