В отображаемом коде, как я могу создать дополнительные профили учеников (каждый требует своего собственного набора информации), не повторяя то, что я уже написал? - PullRequest
0 голосов
/ 07 июля 2019

Я создаю программу для имитации базы данных студентов. Создавая необходимые профили студентов, я обнаружил, что повторяю много кода. Я хочу оптимизировать мой код, чтобы быть более эффективным. Что я могу сделать, чтобы мне не нужно было повторяться при создании каждого нового ученика? (Я новичок в программировании и 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

Если что-то неясно в этом коде, или если вам нужно больше кода из моей программы, пожалуйста, дайте мне знать, и я уточню / отправлю по мере необходимости.

В сочетании с остальной частью моей программы этот код работает отлично. Я просто хотел бы оптимизировать его и сделать так, чтобы мне не нужно было повторять весь код при создании дополнительных студентов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...