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

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

جزء من قسم المنطق وتدفق التنفيذ في رحلة 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

جميع دروس المنطق وتدفق التنفيذ

تدرّب بنفسك: مترجم Python عبر الإنترنت