عليك تقسيم المطلوب إلى أجزاء، بمعنى عليك إنشاء دالة ستكون هي البرنامج، ثم بداخلها أولاً سنقوم بإنشاء num_courses وهو متغير صحيح أي integer يخزن عدد المواد الدراسية التي درسها الطالب أي يجب تحويل القيمة المدخلة من المستخدم إلى integer، وسيتم الحصول علي قيمته من المستخدم من خلال الدالة المسؤولة عن ذلك في بايثون وهي input.
ولا تنسى التحقق من الإدخال صحيح بوضع شرط للتحقق من ذلك، أي نتأكد من أن الإدخال هو رقم صحيح باستخدام حلقة while و try-except للتعامل مع حالات الخطأ.
والآن انتهينا من الجزء الخاص بإدخال المستخدم.
ثم سنستخدم قاموسًا حيث يكون مفتاح كل عنصر هو رقم المادة (1, 2, 3, ...)، والقيمة هي قاموس آخر يحتوي على الدرجة وعدد الساعات.
بعد ذلك نستخدم حلقة for لإعادة العملية لعدد المواد التي أدخلها الطالب. في كل دورة، نطلب من الطالب إدخال الدرجة وعدد الساعات، ونستخدم try-except للتعامل مع حالات إدخال خاطئة (مثل إدخال حرف بدلاً من رقم)، ثم نقوم بتحويل الدرجات إلى قيم رقمية (مثلاً A+ = 4.0, A = 4.0, B+ = 3.5, ... , F = 0.0).
بعد إدخال جميع البيانات، نحسب المعدل التراكمي، وجمع حاصل ضرب كل درجة في عدد ساعاتها، ثم نقسم على مجموع عدد الساعات.
ثم نطبع المعدل التراكمي المحسوب.
ويمكنك تجاهل خطوة معالجة الأخطاء في الوقت الحالي والتركيز على كتابة المنطق الأساسي الخاص بالبرنامج.