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

متوسط الدرجات

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

challenge icon

التحدي

سهل

أنشئ دالة باسم calculate_average_grade تأخذ وسيطًا واحدًا: name (سلسلة نصية). يجب على الدالة:

  1. التحقق مما إذا كان اسم الطالب موجودًا في قاموس student_records.
    • إذا لم يكن موجودًا، قم بطباعة "Student '<name>' not found." وإرجاع None.
  2. إذا كان الاسم موجودًا، فاحسب متوسط الدرجات في مجموعة grades الخاصة بالطالب.
    • إذا كانت مجموعة grades فارغة، فقم بإرجاع 0.
    • خلاف ذلك، قم بحساب وإرجاع متوسط الدرجة كعدد عشري (float).

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

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"))  # يجب أن تعيد 87.5
print(calculate_average_grade("Bob"))  # يجب أن تعيد 75.0
print(calculate_average_grade("Charlie"))  # طالب غير موجود، يجب طباعة رسالة وإرجاع None
print(calculate_average_grade("Alice"))  # يجب أن تعيد 87.5 مرة أخرى

جرّب بنفسك

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

جميع دروس Logic & Flow