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

القائمة حسب المادة

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

challenge icon

التحدي

سهل

قم بإنشاء دالة باسم list_students_by_course تأخذ وسيطًا واحدًا: course (سلسلة نصية). يجب أن تقوم الدالة بما يلي:

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

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

add_student("Alice", 20, ["Math", "Physics"])
add_student("Bob", 22, ["Math", "Biology"])
add_student("Diana", 23, ["Chemistry", "Physics"])
print(list_students_by_course("Math"))  # يجب أن تعيد ["Alice", "Bob"]
print(list_students_by_course("Physics"))  # يجب أن تعيد ["Alice", "Diana"]
print(list_students_by_course("Biology"))  # يجب أن تعيد ["Bob"]
print(list_students_by_course("History"))  # يجب أن تعيد قائمة فارغة

جرّب بنفسك

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

جميع دروس Logic & Flow