Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

أوائل الطلاب

جزء من قسم Logic & Flow في رحلة Python على Coddy — الدرس 45 من 78.

challenge icon

التحدي

سهل

قم بإنشاء دالة باسم filter_top_students تأخذ وسيطاً واحداً: threshold (float). يجب على الدالة القيام بما يلي:

  1. التكرار عبر قاموس student_records والعثور على جميع الطلاب الذين يتجاوز متوسط درجاتهم الـ threshold المحدد.
  2. استخدام دالة calculate_average_grade للحصول على متوسط درجات كل طالب.
  3. إرجاع قائمة بأسماء الطلاب المتفوقين.
  4. إذا لم يستوفِ أي طالب المعايير، يتم إرجاع قائمة فارغة.

أضف (استبدل) كتلة الكود التالية في أسفل الكود الخاص بك:

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 list

خذ لحظة للتفكير في كيفية دمجك للقواميس والمجموعات واتخاذ القرارات لإنشاء برنامج يعمل بكامل وظائفه. عمل رائع! 🚀

جرّب بنفسك

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 list

جميع دروس Logic & Flow