Menu
CoddyTech

Liste par cours

Fait partie de la section Logique et flux du Journey Python de Coddy. Leçon 44 sur 78.

challenge icon

Défi

Facile

Conserve tout ce que tu as écrit dans les étapes précédentes de ce projet : le fichier entier est exécuté, donc student_records et add_student doivent toujours être présents.

Crée 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 élèves inscrits au cours spécifié dans course.
  2. Renvoyer une liste des noms des élèves inscrits au cours.
  3. Si aucun élève n'est inscrit au cours, renvoyer une liste vide.

Ajoute (remplace) le bloc de code suivant à la fin de ton 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"))  # Should return ["Alice", "Bob"]
print(list_students_by_course("Physics"))  # Should return ["Alice", "Diana"]
print(list_students_by_course("Biology"))  # Should return ["Bob"]
print(list_students_by_course("History"))  # Should return an empty list

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 Logique et flux

Entraînez-vous par vous-même : Compilateur Python en ligne