Menu
Coddy logo textTech

Moyenne des notes

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

challenge icon

Défi

Facile

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

  1. Vérifier si le nom de l'étudiant existe dans le dictionnaire student_records.
    • S'il n'existe pas, affichez "Student '<name>' not found." et retournez None.
  2. Si le nom existe, calculez la moyenne des notes dans l'ensemble grades de l'étudiant.
    • Si l'ensemble grades est vide, retournez 0.
    • Sinon, calculez et retournez la note moyenne sous forme de flottant (float).

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

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"))  # Devrait retourner 87.5
print(calculate_average_grade("Bob"))  # Devrait retourner 75.0
print(calculate_average_grade("Charlie"))  # Étudiant inexistant, devrait afficher un message et retourner None
print(calculate_average_grade("Alice"))  # Devrait retourner 87.5 à nouveau

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"]


add_student("Alice", 20, ["Math", "Physics"])
add_student("Bob", 22, ["Biology", "Chemistry"])
add_grade("Alice", 90)
add_grade("Alice", 85)
add_grade("Bob", 75)
add_grade("Charlie", 80)  # Non-existent student
print(is_enrolled("Alice", "Math"))  # Should return True
print(is_enrolled("Alice", "Biology"))  # Should return False
print(is_enrolled("Bob", "Biology"))  # Should return True
print(is_enrolled("Charlie", "Math"))  # Non-existent student, should print message and return False

Toutes les leçons de Logique et flux

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