
📚 سلسلة تعلّم البرمجة للمبتدئين — الدرس 7 من 10
إذا فاتك الدرس السابق: الحلقات التكرارية في Python: for وwhile بأمثلة عملية
مع ازدياد طول برامجك ستلاحظ أنك تكرر الكود نفسه في أماكن مختلفة، فيصبح البرنامج طويلًا ومربكًا. والحل هو الدوال: نكتب مجموعة أوامر مرة واحدة، ونعطيها اسمًا، ثم نستدعيها متى شئنا. في هذا الدرس نتعلم كيف نبني دوالنا الخاصة.
ما هي الدالة؟
الدالة آلة صغيرة: تُدخل فيها شيئًا، فتعالجه، ثم تُخرج لك نتيجة. وقد استخدمت دوالًا جاهزة منذ الدرس الأول دون أن تشعر، مثل print وinput وlen. والآن ستصنع دوالك بنفسك.
تعريف دالة واستدعاؤها
def welcome():
print("مرحبًا بك في درس الدوال")
print("نتمنى لك تعلمًا ممتعًا")
welcome()
welcome()
- الكلمة
defتعني «عرّف دالة». - بعدها اسم الدالة، ثم قوسان، ثم نقطتان.
- الأوامر داخل الدالة تُكتب بإزاحة، مثل الشروط والحلقات.
- تعريف الدالة وحده لا ينفّذها؛ يجب استدعاؤها باسمها مع القوسين.
المعاملات: إعطاء الدالة معلومات
يمكن أن تستقبل الدالة قيمًا تعمل عليها، تسمّى المعاملات.
def greet(name):
print(f"أهلًا يا {name}!")
greet("خالد")
greet("نورة")
ويمكن أن تستقبل أكثر من معامل، وأن تكون لبعضها قيمة افتراضية:
def greet(name, greeting="صباح الخير"):
print(f"{greeting} يا {name}")
greet("سلمان") # صباح الخير يا سلمان
greet("سلمان", "مساء النور") # مساء النور يا سلمان
return: إرجاع نتيجة
الفرق بين print وreturn مهم جدًا: print تعرض القيمة على الشاشة فقط، أما return فتُرجع القيمة إلى البرنامج لنخزّنها ونستخدمها في عمليات أخرى.
def rectangle_area(length, width):
return length * width
area1 = rectangle_area(5, 3)
area2 = rectangle_area(10, 4)
print(f"مجموع المساحتين: {area1 + area2}") # 55
تطبيق: دالة تقدير الدرجة
لنحوّل برنامج التقديرات من الدرس الخامس إلى دالة يمكن استخدامها مع أي عدد من الطلاب:
def get_rating(grade):
if grade >= 90:
return "ممتاز"
elif grade >= 80:
return "جيد جدًا"
elif grade >= 65:
return "جيد"
elif grade >= 50:
return "مقبول"
else:
return "راسب"
print(get_rating(95))
print(get_rating(72))
print(get_rating(48))
لاحظ أن الدالة تتوقف فور تنفيذ أي return، فلا تكمل بقية الأسطر.
المتغيرات المحلية والعامة
المتغير الذي يُنشأ داخل الدالة محلي؛ يعيش داخلها فقط ويختفي بعد انتهائها، ولا يمكن الوصول إليه من خارجها.
def test():
message = "أنا داخل الدالة"
print(message)
test()
# print(message) ← هذا السطر سيسبب خطأ لأن message غير معروف هنا
لماذا الدوال مهمة؟
- عدم التكرار: تكتب الكود مرة واحدة وتستخدمه مرات كثيرة.
- سهولة التعديل: إذا أردت تغيير شيء، تغيّره في مكان واحد.
- تنظيم البرنامج: كل دالة مسؤولة عن مهمة واحدة واضحة.
- سهولة اكتشاف الأخطاء: تختبر كل دالة على حدة.
نصائح لكتابة دوال جيدة
- اجعل لكل دالة مهمة واحدة فقط.
- اختر اسمًا يصف ما تفعله الدالة بفعل واضح:
calculate_total،show_menu. - اجعلها قصيرة؛ إذا طالت كثيرًا فقسّمها إلى دوال أصغر.
تمرين لك
اكتب دالة باسم is_even تستقبل عددًا، وتُرجع True إذا كان زوجيًا وFalse إذا كان فرديًا. ثم استخدمها داخل حلقة لطباعة الأعداد الزوجية من 1 إلى 20.
الخلاصة
الدوال تحوّل برامجك من كتلة أوامر طويلة إلى قطع منظّمة يسهل فهمها وإعادة استخدامها. وفي الدرس القادم سنتعلم كيف نخزّن مجموعات كبيرة من البيانات، مثل أسماء طلاب الفصل ودرجاتهم، باستخدام القوائم والقواميس.
ما الدالة التي تتمنى لو كانت موجودة في حياتك اليومية؟ 😄
→ الدرس السابق: الحلقات التكرارية في Python: for وwhile بأمثلة عملية
الدرس التالي: القوائم والقواميس في Python: تخزين البيانات وتنظيمها ←
📚 فهرس السلسلة كاملة:
- ما هي البرمجة؟ ولماذا تتعلمها الآن؟
- كيف تختار أول لغة برمجة؟ مقارنة بين Python وJavaScript وغيرهما
- تجهيز بيئة البرمجة: من المتصفح إلى Python وVS Code
- المتغيرات وأنواع البيانات في Python: أول برامجك الحقيقية
- الجمل الشرطية في Python: اجعل برنامجك يتخذ القرارات
- الحلقات التكرارية في Python: for وwhile بأمثلة عملية
- الدوال في Python: نظّم برامجك وأعد استخدام الكود (أنت هنا)
- القوائم والقواميس في Python: تخزين البيانات وتنظيمها
- أساسيات HTML وCSS: ابنِ أول صفحة ويب بنفسك
- مقدمة في JavaScript ومشروع ختامي: ماذا بعد تعلم الأساسيات؟
تعليقات
إرسال تعليق
اكتب تعليقك هنا