إرجاع النتيجة: return
نجعل الدالة تعطينا النتيجة لنستخدمها في بقية البرنامج. ⏱ نحو 20 دقيقة.
- تكتب دالة تُرجع نتيجة بـ
return. - تفرّق بين
printوreturn. - تستخدم
returnمع الشرط. - تقسّم البرنامج إلى دوال صغيرة.
١الدالة تُرجع نتيجة
الدالة في الدرس السابق كانت تطبع النتيجة فقط. لكن أحيانًا نريد أن نأخذ النتيجة لنستخدمها: نجمعها، أو نقارنها، أو نحفظها. هنا نستخدم return: «أرجِع هذه القيمة لمن استدعاني».
def add(a, b): return a + b result = add(3, 4)print("الناتج:", result)print("ضعف الناتج:", result * 2)
مثل الآلة الحاسبة: تُعطيك الرقم في يدك، وأنت تقرّر ماذا تفعل به.
٢print أم return؟
| return | ||
|---|---|---|
| ماذا تفعل | تعرض القيمة على الشاشة | تُرجع القيمة إلى مكان الاستدعاء |
| هل نستطيع حفظ القيمة؟ | لا | نعم، في متغيّر |
| متى نستخدمها؟ | لعرض النتيجة للمستخدم | لاستخدام النتيجة في حساب آخر |
def square(n): print(n * n) x = square(5)print(x + 1)
def square(n): return n * n x = square(5)print(x + 1)
الدالة الأولى تطبع 25 لكنها لا تُرجع شيئًا، فتكون x فارغة (None) ويظهر خطأ عند x + 1.
٣return توقف الدالة
عندما تصل الدالة إلى return تخرج فورًا، ولا تنفّذ ما بعدها. لذلك نستعملها مع الشرط:
def grade(mark): if mark >= 60: return "ناجح" return "راسب" print(grade(75))print(grade(40))
٤برنامج كامل بالدوال
نقسّم البرنامج إلى دوال صغيرة، كل دالة تؤدي مهمة واحدة. هذا يسهّل فهم البرنامج وإصلاحه:
def average(a, b, c): return (a + b + c) / 3 def result(avg): if avg >= 60: return "ناجح" return "راسب" avg = average(70, 55, 80)print("المتوسط:", round(avg, 1))print("النتيجة:", result(avg))
📎 للاستزادة (اختياري): المتغيّر داخل الدالة لا يُرى خارجها
المتغيّرات التي ننشئها داخل الدالة تختفي بعد انتهائها. لذلك نستخدم return لإخراج القيمة التي نحتاجها.
توقّع وتحقّق
ماذا تفعل return؟
def f(x): return x + 1. ما قيمة f(4)؟
4 + 1 = 5.ماذا يحدث للأسطر المكتوبة بعد return في الدالة نفسها؟
return تخرج من الدالة فورًا.متى نفضّل return على print؟
return تعطينا القيمة لنستخدمها.الخلاصة
returnتُرجع القيمة إلى مكان الاستدعاء، فنحفظها أو نستخدمها.printتعرض فقط، وreturnتعطينا القيمة.returnتوقف الدالة فورًا.- كل دالة تؤدي مهمة واحدة واضحة.
تحدٍّ برمجي: دالة المساحة
متوسطاكتب دالة اسمها area تستقبل الطول والعرض وتُرجع المساحة. ثم احسب مساحة غرفتين (4×5) و (3×6) واطبع مجموعهما.
- الدالة تستخدم return لا print.
- احفظ مساحة كل غرفة في متغيّر.
- اطبع: المجموع: ثم الناتج.
ابدأ من هذا الكود، واضغط ▶ شغّل هنا لتكتب حلّك وتجرّبه مباشرة:
def area(length, width):💡 تلميح 1
return length * width💡 تلميح 2
r1 = area(4, 5)حاول بنفسك أولًا؛ للمسألة أكثر من حلّ صحيح.
def area(length, width): return length * width r1 = area(4, 5)r2 = area(3, 6)print("المجموع:", r1 + r2)