متوسط الدرجات
جزء من قسم Logic & Flow في رحلة Python على Coddy — الدرس 43 من 78.
التحدي
سهلأنشئ دالة باسم calculate_average_grade تأخذ وسيطًا واحدًا: name (سلسلة نصية). يجب على الدالة:
- التحقق مما إذا كان اسم الطالب موجودًا في قاموس
student_records.- إذا لم يكن موجودًا، قم بطباعة
"Student '<name>' not found."وإرجاعNone.
- إذا لم يكن موجودًا، قم بطباعة
- إذا كان الاسم موجودًا، فاحسب متوسط الدرجات في مجموعة
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
1استكشاف المتغيرات
الثوابتإسناد المتغيرات المتعددةتبديل المتغيراتالمتغيرات النائبةتقريب الأرقامتحويل القوائم4تطبيق سجل جهات الاتصال
عرض القائمةإضافة جهة اتصال7المجموعات - الجزء الثاني
العمليات الرياضية - الجزء الأولالعمليات الرياضية - الجزء الثانيمراجعة - البحث عن الكنزالمجموعات الجزئية والمجموعات الشاملةالتكرار عبر المجموعاتمراجعة - متتبع البطولة10أساسيات تضمين القوائم (List Comprehensions)
الصيغة البرمجيةإنشاء قوائم بسيطةإضافة الشروطاستخدام تجميع البياناتمراجعة - بيت القوائممراجعة - عناصر الحرية5اتخاذ القرارات المتقدم
المعامل الثلاثيالتحقق من الانتماءالتحقق من الهويةأخطاء الإزاحةمراجعة - فلتر العطلات8مدير سجلات الطلاب
نظرة عامة على المشروعإضافة طالب3القواميس - الجزء الثاني
دوال القواميسالقواميس المتداخلةالتحقق من وجود المفاتيحالتكرار عبر القواميسمراجعة - عداد التكرار9تجميع البيانات المتقدم
استخدام Sumإيجاد الحد الأدنى والأقصىفرز البيانات بكفاءةمراجعة - Dictionary Sorter12أساسيات معالجة الأخطاء
ما هي معالجة الأخطاء؟كتلة Try و Exceptالتعامل مع استثناءات متعددةمراجعة - أخطاء عربة التسوق