Я создаю программу для имитации базы данных студентов. Создавая необходимые профили студентов, я обнаружил, что повторяю много кода. Я хочу оптимизировать мой код, чтобы быть более эффективным. Что я могу сделать, чтобы мне не нужно было повторяться при создании каждого нового ученика? (Я новичок в программировании и Python, поэтому заранее прошу прощения за мой неофитический код.)
Я пытался создать функцию для автоматизации процесса создания профиля учащегося, однако я столкнулся с необходимостью повторного ввода профиля учащегося при каждом запуске программы. Если бы я знал, как предотвратить это, возможно, написание функции для автоматизации этого процесса было бы не так уж плохо. Если вы хотите увидеть созданную мной функцию, пожалуйста, дайте мне знать, и я с удовольствием поделюсь ей.
# The following is the aforementioned code that I continuously have to repeat for each new student:
# Student_a (s_a) profile:
s_a = Student("9572813") # Initializing student with ID through Student class I created
s_a.set_personal("Henry", "Friedman", "4292 Applesauce Tree Road, Angle-hill, VA, 76259", "218-250-5701") # Setting personal info through Student class
a_per_info = s_a.get_personal()
# Setting student's courses, getting average for courses, and appending course averages to said student's grade list:
s_a.set_course("ENG1121 201902 100 90 96 78 69 100 100 92 86 89")
a_av1 = s_a.get_course_average("ENG1121 201902")
s_a.grades.append(s_a.g_list(a_av1))
s_a.d_courses.pop(0) # (My Student class would not allow me to calculate the course average of more than 1 course, so I created a dummy list for student courses that I could .pop(0) from after each calculation, making it possible for the succeeding course's average to be calculated.)
s_a.set_course("MATH1150 201903 99 88 74 67 91 100 83 72 87 100")
a_av2 = s_a.get_course_average("MATH1150 201903")
s_a.grades.append(s_a.g_list(a_av2))
s_a.d_courses.pop(0)
# (This process of setting a student's courses is further repeated, but I thought it redundant to show the code.)
# Using Student class to calculate student's letter grade for each class, grade percentage for each class, and student's overall GPA:
s_a.calc(s_a.grades)
a_cor_info = s_a.get_courses()
# Adding accounting items to the student's profile
s_a.set_acct("Summer Tuition: ", 1423)
s_a.set_acct("Summer Books Payment: ", 230)
s_a.set_acct("Summer Access Code Payment: ", 100)
s_a.set_acct("Summer Tuition Payment: ", 890)
a_acct_info = s_a.get_acct()
# Calculating student's balance
a_bal = 1423 - (230 + 100 + 890)
t_bal += a_bal
Если что-то неясно в этом коде, или если вам нужно больше кода из моей программы, пожалуйста, дайте мне знать, и я уточню / отправлю по мере необходимости.
В сочетании с остальной частью моей программы этот код работает отлично. Я просто хотел бы оптимизировать его и сделать так, чтобы мне не нужно было повторять весь код при создании дополнительных студентов.