7.1 أساسيات الوَحدات
أهداف التعلم
في نهاية هذا القسم، ينبغي أن تكون قادرًا على:
- كتابة وَحدة تتكون فقط من تعريفات الدوال.
- استيراد الوَحدة واستخدام الدوال في برنامج.
تعريف وَحدة
تُعرَّف الوَحدات بوضع الشِفرة في ملف .py. الوَحدة area أدناه موجودة في ملف باسم area.py. توفر هذه الوَحدة دوال لحساب المساحة.
مثال 7.1
وَحدة area
"""دوال لحساب مساحة الأشكال الهندسية."""
import math
# أشكال ثنائية الأبعاد
def square(side):
"""تحصل على مساحة المربع."""
return side**2
def rectangle(length, width):
"""تحصل على مساحة المستطيل."""
return length * width
def triangle(base, height):
"""تحصل على مساحة المثلث."""
return 0.5 * base * height
def trapezoid(base1, base2, height):
"""تحصل على مساحة شبه المنحرف."""
return 0.5 * (base1 + base2) * height
def circle(radius):
"""تحصل على مساحة الدائرة."""
return math.pi * radius**2
def ellipse(major, minor):
"""تحصل على مساحة القطع الناقص."""
return math.pi * major * minor
# أشكال ثلاثية الأبعاد
def cube(side):
"""تحصل على مساحة سطح المكعب."""
return 6 * side**2
def cylinder(radius, height):
"""تحصل على مساحة سطح الأسطوانة."""
return 2 * math.pi * radius * (radius + height)
def cone(radius, height):
"""تحصل على مساحة سطح المخروط."""
return math.pi * radius * (radius + math.hypot(height, radius))
def sphere(radius):
"""تحصل على مساحة سطح الكرة."""
return 4 * math.pi * radius**2
مفاهيم تطبيقية
تعريف وَحدة
استيراد وَحدة
يمكن استخدام الوَحدة المُعرَّفة في area.py في برامج أخرى. عند استيراد الوَحدة area، تُحذف اللاحقة .py:
import area
print("مساحة ملعب كرة سلة:", area.rectangle(94, 50))
print("مساحة حلبة سيرك:", area.circle(21))
الإخراج هو:
مساحة ملعب كرة سلة: 4700
مساحة حلبة سيرك: 1385.4423602330987
مفاهيم تطبيقية
استيراد وَحدة
جرّب بنفسك
وَحدة التحويل
اكتب وَحدة تُعرّف الدوال التالية:
cel2fah(c)–
تحوّل درجة حرارة بالدرجة المئوية إلى فهرنهايت.
الصيغة هي9/5 * c + 32.fah2cel(f)–
تحوّل درجة حرارة بالفهرنهايت إلى مئوية.
الصيغة هي5/9 * (f - 32).km2mi(km)–
تحوّل مسافة بالكيلومترات إلى أميال.
الصيغة هيkm / 1.60934.mi2km(mi)–
تحوّل مسافة بالأميال إلى كيلومترات.
الصيغة هيmi * 1.60934.
يجب أن تتضمن كل دالّة سلسلة توثيق كأول سطر. تم توفير سلسلة توثيق للوَحدة لك.
ينبغي ألا تفعل الوَحدة شيئًا سوى تعريف الدوال. عند النقر على زر "تشغيل"، يجب أن تعمل الوَحدة بدون أخطاء. ولا ينبغي أن يظهر أي ناتج.
جرّب بنفسك
عطلة أوروبية
اكتب برنامجًا يستخدم وَحدة conversion من التمرين السابق لإكمال قصة قصيرة. يجب أن يتطابق خرج البرنامج مع المثال التالي (المدخلات بخط عريض):
بأي سرعة كنت تقود؟ 180
واو، هذا يعادل 112 ميلاً في الساعة!
كم كانت درجة الحرارة؟ 35
هذا يعادل 95 درجة فهرنهايت!
لاحظ أن هذا التمرين يتطلب ملفين:
- european.py، البرنامج الرئيسي. تعليمات الإدخال والإخراج مُوفَّرة كنقطة بداية. عدّل الأسطر التي تحتوي على تعليقات TODO لاستخدام وَحدة التحويل.
- conversion.py، الوَحدة الأخرى. انسخ والصق شِفرتك من التمرين السابق. استورد هذه الوَحدة في european.py بعد سلسلة التوثيق.