StandOut
@StandOut
мизантроп

Прокомментируйте код в python 3?

прокомментируй пожалуйста код
gr = [
    {'имя':'Витек','группа':'300','возраст':'20','оценки':[1,1,1,1,1]},
    {'имя':'Санек','группа':'301','возраст':'21','оценки':[2,2,2,2,2]},
    {'имя':'Максон','группа':'302','возраст':'22','оценки':[3,3,3,3,3]},
    {'имя':'Петя','группа':'303','возраст':'23','оценки':[4,4,4,4,4]},
    {'имя':'Вадик','группа':'304','возраст':'24','оценки':[5,5,5,5,5]}
]

def c_mr(ss,m): #ss-студенты и m-оценки
    print ('имя', 'группа', 'возраст', 'оценки')
    for s in ss: # цилк для студентов в студентах
        m_l = s['оценки'] #m_l - лист с оценками
        r = (sum(m_l)/len(m_l)) #r-результат
        if r >= p: #p-вводимое число
            print(s['имя'], s['группа'], s['возраст'], str(s['оценки']))

p = int(input('В ведите среднее значение :'))
c_mr(gr,p)


в частности интересует, зачем в функции второй аргумент «m» def c_mr(ss,m)
  • Вопрос задан
  • 203 просмотра
Решения вопроса 2
tsarevfs
@tsarevfs
C++ developer
Используйте осмысленные имена переменных. Тогда можно будет не писать коментарии. Однобуквенные имена переменных зло.
ss->student_data
m_l->marks
r->result

Придумать имя для вашей функции сложно, потому что она делает много вещей сразу.
Я бы предложил выделить подсчет средней оценки и печать данных студента в отдельные функции.

def display_students_by_marks(all_students_data, min_average):
    for student_data in all_students_data: 
        average = calc_average_mark(student_data)
        if average >= min_average:
            display_student(student_data)


Функции calc_average_mark и display_student будут реализованы аналогично вашему коду.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
Zoominger
@Zoominger
System Engineer
{'имя':'Витек','группа':'300','возраст':'20','оценки':[1,1,1,1,1]},

Вас не смущает, что ряд переменных стабильно повторяется? Вам не надоело вбивать их раз за разом? Должно смущать и должно надоедать. Любая повторяемость в коде - признак плохой архитектуры и повод провести оптимизацию.
Ответ написан
@Sundagy
BEADS
m в функц. не используеться
дать более осмысленные название переменных и функц, без нижн подчеркиваний
добавить проверку деление на ноль
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы