طَبِّقْهاتعلّم المبدأ، وطبّقه بيدكمقرر 111 · أساسيات برمجة الحاسب
الدرس 17 · الوحدة 4: الدوال والقوائم

إرجاع النتيجة: return

نجعل الدالة تعطينا النتيجة لنستخدمها في بقية البرنامج. ⏱ نحو 20 دقيقة.

add347return
بعد هذا الدرس ستستطيع أن:
  • تكتب دالة تُرجع نتيجة بـ return.
  • تفرّق بين print و return.
  • تستخدم return مع الشرط.
  • تقسّم البرنامج إلى دوال صغيرة.

١الدالة تُرجع نتيجة

الدالة في الدرس السابق كانت تطبع النتيجة فقط. لكن أحيانًا نريد أن نأخذ النتيجة لنستخدمها: نجمعها، أو نقارنها، أو نحفظها. هنا نستخدم return: «أرجِع هذه القيمة لمن استدعاني».

main.py
def add(a, b):    return a + b result = add(3, 4)print("الناتج:", result)print("ضعف الناتج:", result * 2)
Shell×
>>> %Run main.py
الناتج: 7
ضعف الناتج: 14
>>>

مثل الآلة الحاسبة: تُعطيك الرقم في يدك، وأنت تقرّر ماذا تفعل به.

٢print أم return؟

printreturn
ماذا تفعلتعرض القيمة على الشاشةتُرجع القيمة إلى مكان الاستدعاء
هل نستطيع حفظ القيمة؟لانعم، في متغيّر
متى نستخدمها؟لعرض النتيجة للمستخدملاستخدام النتيجة في حساب آخر
✗ خطأ
main.py
def square(n):    print(n * n) x = square(5)print(x + 1)
✓ صواب
main.py
def square(n):    return n * n x = square(5)print(x + 1)

الدالة الأولى تطبع 25 لكنها لا تُرجع شيئًا، فتكون x فارغة (None) ويظهر خطأ عند x + 1.

٣return توقف الدالة

عندما تصل الدالة إلى return تخرج فورًا، ولا تنفّذ ما بعدها. لذلك نستعملها مع الشرط:

main.py
def grade(mark):    if mark >= 60:        return "ناجح"    return "راسب" print(grade(75))print(grade(40))
Shell×
>>> %Run main.py
ناجح
راسب
>>>

٤برنامج كامل بالدوال

نقسّم البرنامج إلى دوال صغيرة، كل دالة تؤدي مهمة واحدة. هذا يسهّل فهم البرنامج وإصلاحه:

main.py
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))
Shell×
>>> %Run main.py
المتوسط: 68.3
النتيجة: ناجح
>>>
📎 للاستزادة (اختياري): المتغيّر داخل الدالة لا يُرى خارجها

المتغيّرات التي ننشئها داخل الدالة تختفي بعد انتهائها. لذلك نستخدم return لإخراج القيمة التي نحتاجها.

توقّع وتحقّق

ماذا تفعل return؟

نأخذ القيمة ونستخدمها.

def f(x): return x + 1. ما قيمة f(4)؟

4 + 1 = 5.

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

return تخرج من الدالة فورًا.

متى نفضّل return على print؟

return تعطينا القيمة لنستخدمها.

الخلاصة

تحدٍّ برمجي: دالة المساحة

متوسط

اكتب دالة اسمها area تستقبل الطول والعرض وتُرجع المساحة. ثم احسب مساحة غرفتين (4×5) و (3×6) واطبع مجموعهما.

المطلوب:
  • الدالة تستخدم return لا print.
  • احفظ مساحة كل غرفة في متغيّر.
  • اطبع: المجموع: ثم الناتج.

ابدأ من هذا الكود، واضغط ▶ شغّل هنا لتكتب حلّك وتجرّبه مباشرة:

main.py
def area(length, width):
المطلوب×
المجموع: 38
💡 تلميح 1
داخل الدالة: return length * width
💡 تلميح 2
r1 = area(4, 5)

حاول بنفسك أولًا؛ للمسألة أكثر من حلّ صحيح.

main.py
def area(length, width):    return length * width r1 = area(4, 5)r2 = area(3, 6)print("المجموع:", r1 + r2)
انتقل إلى تقييم الدرساختيار من متعدد، وصح وخطأ، وأكمل الفراغ، وتتبّع الناتج.ابدأ التقييم ←