Meilleurs étudiants
Fait partie de la section Logique et flux du Journey Python de Coddy. Leçon 45 sur 78.
Défi
FacileCrée une fonction nommée filter_top_students qui prend un argument : threshold (float). La fonction doit :
- Parcourir le dictionnaire
student_recordset trouver tous les élèves dont la note moyenne est supérieure authresholdspécifié. - Utiliser la fonction
calculate_average_gradepour obtenir la note moyenne de chaque élève. - Renvoyer une liste des noms des meilleurs élèves.
- Si aucun élève ne répond aux critères, 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"])
add_grade("Alice", 90)
add_grade("Alice", 85)
add_grade("Bob", 75)
add_grade("Diana", 95)
print(filter_top_students(80)) # Should return ["Alice", "Diana"]
print(filter_top_students(90)) # Should return ["Diana"]
print(filter_top_students(100)) # Should return an empty listPrends un moment pour réfléchir à la manière dont tu as combiné les dictionnaires, les ensembles et la prise de décision pour créer un programme entièrement fonctionnel. Excellent travail ! 🚀
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)
def list_students_by_course(course):
students_in_course = []
for name, details in student_records.items():
if course in details["courses"]:
students_in_course.append(name)
return students_in_course
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 listToutes les leçons de Logique et flux
1Exploration des variables
ConstantesAffectations multiples de variablesÉchange de variablesVariables de remplacementArrondir les nombresConversion en liste4Application de carnet de contacts
Afficher le menuAjouter un contact7Ensembles, partie 2
Opérations mathématiques, partie 1Opérations mathématiques, partie 2Révision - Chasse au trésorSous-ensembles et sur-ensemblesParcourir les ensemblesRévision - Suivi du tournoi10Compréhensions de liste de base
La syntaxeCréer des listes simplesAjouter des conditionsUtiliser l’agrégation de donnéesRécapitulatif - La maison des listesRécapitulatif - Les éléments de la liberté13Système de gestion des stocks
Présentation du projetAjouter un article2Dictionnaires, partie 1
Qu’est-ce qu’un dictionnaire ?Créer un dictionnaireAccéder aux valeursModifier des dictionnairesRécapitulatif – Gestionnaire de recettes5Prise de décision avancée
Opérateur ternaireVérifier l’appartenanceVérifier l’identitéErreurs d’indentationRécapitulatif – Filtre de vacances8Gestionnaire des dossiers étudiants
Présentation du projetAjouter un étudiant11Fonctions avancées
Retourner plusieurs valeursFonctions lambda, partie 1Fonctions lambda, partie 2Défi récapitulatif - Tri avec lambdaFonctions récursives, partie 1Fonctions récursives, partie 2Récapitulatif - Somme d’une liste imbriquée14Fonctions d’ordre supérieur
La fonction mapLa fonction filterRécapitulatif - Validateur d’e-mailsRécapitulatif - Traitement de nombres3Dictionnaires, partie 2
Méthodes des dictionnairesDictionnaires imbriquésVérifier la présence de clésParcourir les dictionnairesRécapitulatif - Compteur de fréquences6Ensembles, partie 1
Qu’est-ce qu’un ensemble ?Opérations de baseMéthodes des ensemblesRécapitulatif - Supprimer les doublons9Agrégation avancée de données
Utiliser la sommeTrouver le minimum et le maximumTrier les données efficacementRécapitulatif - Trieur de dictionnairesEntraînez-vous par vous-même : Compilateur Python en ligne