اذهب إلى المحتوى

السؤال

نشر

أريد عمل دالة calculate_sgpa هذه الدالة تقبل ثلاثة مدخلات، كل مدخل منهم يعبر عن درجة الطالب في مادة دراسية، وتقوم هذه الدالة بحساب درجة GPA الخاصة بالفصل الدراسي (SGPA).
على سبيل المثال، يتم إستدعاء الدالة وتمرير الدرجات التالية إليها: 'A', 'A' و'D' وتقوم الدالة بإرجاع القيمة 3.0 وذلك نتيجة للعملية

(4+4+1)/3

 

Recommended Posts

  • 0
نشر

سأحاول أن أشرح لك خطوات عمل هذه الدالة في بايثون.

أولًا في نظام Semester GPA يتم الرمز إلى الدرجات 4 و 3 و 2 و 1 و 0 بالأحرف A و B و C و D و F على الترتيب، لذلك سنقوم بعمل دالة تقوم بتحويل هذه الأحرف إلى أرقام كالتالي:

def convert(letter):
    # index:  0    1    2    3    4
    grads = ['f', 'd', 'c', 'b', 'a']
    return grads.index(letter.lower())

كما تلاحظ أن كل حرف موجود في القائمة grads له index يساوي القيمة التي نريد إرجاعها، واستخدمت التابع index لمعرفة قيمة index الخاصة بالحرف، كما قمت بتحويل الحرف نفسه إلى lower case لكي تعمل الدالة من الأحرف الصغير والكبيرة a - A

لأن نقوم بعمل دالة أخرى لحساب قيمة الـ GPA بمساعدة الدالة convert التي قمنا بعملها في الخطوة السابقة:

def calc_GPA(x, y, z):
    x, y, z = convert(x), convert(y), convert(z)
    return (x + y + z) / 3

هذه الدالة تأخذ 3 قيم x, y, z ونقوم بتحويل هذه القيم إلى أرقام بمساعدة دالة convert التي قمنا بعملها سابقًا، ثم نقوم بجمع هذه القيم الثلاثة معًا وقسمتها على 3، وهنا طريقة إستخدام هذه الدالة:

>>> calc_GPA('a', 'a', 'd')
3.0
>>> calc_GPA('a', 'a', 'a')
4.0
>>> calc_GPA('a', 'F', 'F')
1.3333333333333333
>>>

بالتوفيق.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...