Menu
Coddy logo textTech

Liste par cours

Fait partie de la section Logic & Flow du Journey Python de Coddy — leçon 44 sur 78.

challenge icon

Défi

Facile

Créez une fonction nommée list_students_by_course qui prend un argument : course (chaîne de caractères). La fonction doit :

  1. Parcourir le dictionnaire student_records et trouver tous les étudiants inscrits au course spécifié.
  2. Retourner une liste des noms des étudiants qui sont inscrits au cours.
  3. Si aucun étudiant n'est inscrit au cours, retourner une liste vide.

Ajoutez (remplacez) le bloc de code suivant au bas de votre code :

add_student("Alice", 20, ["Math", "Physics"])
add_student("Bob", 22, ["Math", "Biology"])
add_student("Diana", 23, ["Chemistry", "Physics"])
print(list_students_by_course("Math"))  # Devrait retourner ["Alice", "Bob"]
print(list_students_by_course("Physics"))  # Devrait retourner ["Alice", "Diana"]
print(list_students_by_course("Biology"))  # Devrait retourner ["Bob"]
print(list_students_by_course("History"))  # Devrait retourner une liste vide

Essayez vous-même

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

Toutes les leçons de Logic & Flow