Menu
Coddy logo textTech

Список по курсам

Часть раздела Logic & Flow путешествия по Python на Coddy — урок 44 из 78.

challenge icon

Задание

Легко

Создайте функцию с именем list_students_by_course, которая принимает один аргумент: course (строка). Функция должна:

  1. Перебрать словарь student_records и найти всех студентов, записанных на указанный course.
  2. Вернуть список имен студентов, которые записаны на этот курс.
  3. Если на курс не записан ни один студент, вернуть пустой список.

Добавьте (замените) следующий блок кода в нижней части вашего кода:

add_student("Alice", 20, ["Math", "Physics"])
add_student("Bob", 22, ["Math", "Biology"])
add_student("Diana", 23, ["Chemistry", "Physics"])
print(list_students_by_course("Math"))  # Должно вернуть ["Alice", "Bob"]
print(list_students_by_course("Physics"))  # Должно вернуть ["Alice", "Diana"]
print(list_students_by_course("Biology"))  # Должно вернуть ["Bob"]
print(list_students_by_course("History"))  # Должно вернуть пустой список

Попробуйте сами

student_records = {}

def add_student(name, age, courses):
    if name in student_records:
        print(f"Student '{name}' already exists.")
        return
    student_records[name] = {"age": age, "grades": set(), "courses": set(courses)}
    print(f"Student '{name}' added successfully.")

def add_grade(name, grade):
    if name not in student_records:
        print(f"Student '{name}' not found.")
        return
    student_records[name]["grades"].add(grade)
    print(f"Grade {grade} added for student '{name}'.")

def is_enrolled(name, course):
    if name not in student_records:
        print(f"Student '{name}' not found.")
        return False
    return course in student_records[name]["courses"]

def calculate_average_grade(name):
    if name not in student_records:
        print(f"Student '{name}' not found.")
        return None
    grades = student_records[name]["grades"]
    if not grades:
        return 0
    return sum(grades) / len(grades)


add_student("Alice", 20, ["Math", "Physics"])
add_student("Bob", 22, ["Biology", "Chemistry"])
add_grade("Alice", 90)
add_grade("Alice", 85)
add_grade("Bob", 75)
print(calculate_average_grade("Alice"))  # Should return 87.5
print(calculate_average_grade("Bob"))  # Should return 75.0
print(calculate_average_grade("Charlie"))  # Non-existent student, should print message and return None
print(calculate_average_grade("Alice"))  # Should return 87.5 again

Все уроки раздела Logic & Flow