كتابة الدوال: def
نكتب دوالنا بأنفسنا لنستخدم الأوامر نفسها مرات كثيرة. ⏱ نحو 20 دقيقة.
- تشرح فائدة كتابة الدوال.
- تعرّف دالة بـ
defوتستدعيها. - تمرّر قيمة أو أكثر إلى الدالة عبر المُعطيات.
١لماذا نكتب دوالنا؟
إذا تكررت مجموعة أوامر في برنامجك عدة مرات، فاجمعها في دالة لها اسم، ثم استدعها متى شئت. مثل وصفة الطبخ: تكتبها مرة، وتطبخ بها كل يوم.
def greet(): print("السلام عليكم") print("أهلًا بك في الدرس") greet()greet()
def تعني «عرّف». السطر الأول يعرّف الدالة ولا ينفّذها. التنفيذ يحدث فقط عند الاستدعاء greet().
٢أجزاء تعريف الدالة
| الجزء | مثال | ملاحظة |
|---|---|---|
| الكلمة def | def | تبدأ بها كل دالة |
| اسم الدالة | greet | بنفس قواعد أسماء المتغيّرات |
| القوسان والنقطتان | (): | لا تنسَ النقطتين |
| جسم الدالة | الأسطر التي تحتها | بمسافة بادئة، مثل if |
٣المُعطيات: نعطي الدالة قيمة
نستطيع أن نجعل الدالة تستقبل قيمة تعمل عليها. نكتب اسمًا بين القوسين يسمى المُعطى، وعند الاستدعاء نضع القيمة:
def hello(name): print("مرحبًا", name) hello("علي")hello("منى")
الدالة نفسها، لكن نتيجتها تتغيّر حسب القيمة التي نعطيها.
٤أكثر من مُعطى
نفصل بين المُعطيات بفاصلة، ونعطي القيم بالترتيب نفسه:
def area(width, height): print("المساحة:", width * height) area(4, 5)area(10, 3)
📎 للاستزادة (اختياري): قيمة افتراضية للمُعطى
نستطيع أن نعطي المُعطى قيمة تُستخدم إذا لم نرسل قيمة:
def welcome(name="زائر"): print("أهلًا", name) welcome()welcome("خالد")
توقّع وتحقّق
متى تُنفَّذ أسطر الدالة؟
كم مرة يُطبع «مرحبًا» إذا عرّفنا دالة تطبعه واستدعيناها 3 مرات؟
في def add(a, b): ما a و b؟
أي سطر يعرّف دالة بشكل صحيح؟
def ثم الاسم ثم () ثم :الخلاصة
defتعرّف دالة، والاستدعاء ينفّذها.- التعريف:
defثم الاسم ثم()ثم النقطتان، والجسم بمسافة بادئة. - المُعطيات قيم تستقبلها الدالة، ونفصل بينها بفاصلة.
- نعرّف الدالة قبل أن نستدعيها.
تحدٍّ برمجي: دالة الترحيب
سهلاكتب دالة اسمها welcome تستقبل اسمًا وتطبع: أهلًا ثم الاسم. ثم استدعها مرتين: مع "سعد" ومع "ريم".
- عرّف الدالة بـ
def welcome(name): - داخلها:
print("أهلًا", name) - استدعها مرتين.
ابدأ من هذا الكود، واضغط ▶ شغّل هنا لتكتب حلّك وتجرّبه مباشرة:
def welcome(name):💡 تلميح 1
💡 تلميح 2
welcome("سعد")حاول بنفسك أولًا؛ للمسألة أكثر من حلّ صحيح.
def welcome(name): print("أهلًا", name) welcome("سعد")welcome("ريم")