بعد أن تعلمنا في الدرس السابق معنى الدوال Functions في Python وكيف نعرّف دالة باستخدام def، ننتقل الآن إلى فكرة مهمة جدًا وهي return.
كثير من المبتدئين في تعلم بايثون يخلطون بين print() و return. يظنون أن الاثنين نفس الشيء، لأنهما أحيانًا يظهران نفس النتيجة أمامنا، لكن الحقيقة أن بينهما فرقًا كبيرًا.
في هذا الدرس من سلسلة أساسيات بايثون سنشرح معنى return ببساطة، ومتى نستخدمها، ولماذا لا تكفي print() في كثير من البرامج.
{getToc} $title={محتوى المقال}
{alertInfo} إذا فهمت الفرق بين print و return، ستبدأ بكتابة دوال أفضل وأكثر قابلية للاستخدام داخل برامج Python.
ما معنى return في Python؟
كلمة return تعني أن الدالة ترجع قيمة إلى المكان الذي تم استدعاؤها منه.
بمعنى أبسط: الدالة لا تكتفي بتنفيذ أوامر فقط، بل يمكنها أن تعطيك نتيجة تستطيع استخدامها لاحقًا داخل البرنامج.
مثال بسيط:
def add(a, b):
return a + b
result = add(5, 3)
print(result)
الناتج:
8
هنا الدالة add رجعت ناتج الجمع، ثم خزّناه داخل المتغير result.
{alertSuccess} return تجعل الدالة تعطيك قيمة يمكن تخزينها أو استخدامها في عملية أخرى.
الفرق بين print و return
الدالة print() تعرض النص أو القيمة على الشاشة فقط، أما return فترجع قيمة يمكن للبرنامج استخدامها.
انظر لهذا المثال:
def add_print(a, b):
print(a + b)
result = add_print(5, 3)
print(result)
الناتج سيكون تقريبًا:
8
None
لماذا ظهر None؟
لأن الدالة طبعت الرقم 8 على الشاشة، لكنها لم ترجع قيمة حقيقية. لذلك عندما حاولنا تخزين النتيجة داخل result كانت القيمة None.
{alertWarning} print تعرض النتيجة فقط، لكنها لا تجعل الدالة ترجع قيمة يمكن استخدامها لاحقًا.
مثال صحيح باستخدام return
الآن نكتب نفس الفكرة بطريقة أفضل باستخدام return.
def add_return(a, b):
return a + b
result = add_return(5, 3)
print(result)
الناتج:
8
هنا الدالة لم تطبع النتيجة مباشرة، بل رجعتها. وبعد ذلك نحن قررنا ماذا نفعل بهذه القيمة.
لماذا return مهمة في البرامج العملية؟
لو كنت تكتب برنامجًا بسيطًا للتجربة، قد تبدو print() كافية. لكن في البرامج العملية نحتاج غالبًا إلى استخدام النتيجة أكثر من مرة.
مثال:
def calculate_total(price, quantity):
return price * quantity
total = calculate_total(10, 3)
final_total = total + 5
print(final_total)
الناتج:
35
الدالة رجعت قيمة المجموع، ثم استخدمنا هذه القيمة لاحقًا لإضافة تكلفة أخرى.
{alertInfo} استخدم return عندما تريد أن تستفيد من ناتج الدالة داخل عملية أخرى.
ماذا يحدث إذا لم نكتب return؟
إذا لم تكتب return داخل الدالة، فبايثون ترجع تلقائيًا القيمة None.
def greet():
message = "Hello"
result = greet()
print(result)
الناتج:
None
الدالة أنشأت متغيرًا داخلها، لكنها لم ترجعه. لذلك لا يمكن استخدامه خارج الدالة.
return توقف تنفيذ الدالة
من الأشياء المهمة أن return لا ترجع قيمة فقط، بل توقف تنفيذ الدالة أيضًا.
مثال:
def test():
print("Before return")
return "Done"
print("After return")
result = test()
print(result)
الناتج:
Before return
Done
لاحظ أن السطر:
print("After return")
لم يتم تنفيذه، لأنه جاء بعد return.
{alertError} أي كود تكتبه بعد return داخل نفس المسار في الدالة لن يتم تنفيذه.
استخدام return مع if
يمكن استخدام return مع الشروط if لإنهاء الدالة حسب حالة معينة.
def check_age(age):
if age >= 18:
return "Allowed"
else:
return "Not allowed"
print(check_age(20))
print(check_age(15))
الناتج:
Allowed
Not allowed
هنا الدالة ترجع قيمة مختلفة حسب الشرط.
إرجاع أكثر من قيمة من الدالة
في Python يمكن للدالة أن ترجع أكثر من قيمة في نفس الوقت.
def calculate(a, b):
total = a + b
difference = a - b
return total, difference
sum_result, diff_result = calculate(10, 4)
print(sum_result)
print(diff_result)
الناتج:
14
6
في الحقيقة، بايثون ترجع هذه القيم على شكل Tuple، لكن يمكننا استقبالها في أكثر من متغير كما في المثال.
متى أستخدم print ومتى أستخدم return؟
| الأداة | ماذا تفعل؟ | متى أستخدمها؟ |
|---|---|---|
print() |
تعرض قيمة على الشاشة | عند التجربة أو عرض نتيجة للمستخدم |
return |
ترجع قيمة من الدالة | عندما تريد استخدام ناتج الدالة لاحقًا |
أخطاء شائعة مع return في Python
1. استخدام print بدل return
هذا خطأ شائع عند المبتدئين. إذا كنت تريد تخزين ناتج الدالة في متغير، استخدم return.
2. نسيان استقبال القيمة الراجعة
إذا كانت الدالة ترجع قيمة، في الغالب تحتاج إلى تخزينها أو استخدامها مباشرة.
result = add_return(5, 3)
3. كتابة كود مهم بعد return
أي كود يأتي بعد return في نفس المسار لن يتم تنفيذه.
4. الخلط بين return و variable
المتغير داخل الدالة لا يكون متاحًا خارجها إلا إذا أرجعته باستخدام return.
تمرين بسيط
اكتب دالة اسمها square تستقبل رقمًا، ثم ترجع مربع الرقم.
الحل:
def square(number):
return number * number
result = square(6)
print(result)
الناتج:
36
أسئلة شائعة حول return في Python
هل return تطبع النتيجة؟
لا. return لا تطبع النتيجة على الشاشة، بل ترجع قيمة إلى البرنامج. إذا أردت عرضها، استخدم print().
هل يمكن للدالة أن تعمل بدون return؟
نعم، يمكن للدالة أن تعمل بدون return، لكنها سترجع تلقائيًا None.
هل يمكن استخدام أكثر من return داخل الدالة؟
نعم، يمكن استخدام أكثر من return مع الشروط، لكن عند تنفيذ واحدة منها تنتهي الدالة.
ما الفرق بين return و print في Python؟
print تعرض النتيجة فقط، أما return فترجع قيمة يمكن تخزينها أو استخدامها في عمليات أخرى.
روابط مهمة من بايثون العرب
- أساسيات بايثون 13: شرح Functions في Python
- شرح if و else في Python للمبتدئين
- شرح Loops في Python للمبتدئين
- بايثون بالمثال: حساب مجموع عناصر List في Python
مصدر خارجي مفيد
يمكنك قراءة توثيق Python الرسمي حول تعريف الدوال من هنا: Python Documentation - Defining Functions.
خلاصة المقال
في هذا الدرس تعلمنا معنى return في دوال Python، وفهمنا الفرق بينها وبين print().
تذكر أن print تعرض النتيجة فقط، أما return فترجع قيمة يمكن استخدامها داخل البرنامج.
إذا كنت تريد تعلم لغة بايثون بطريقة صحيحة، فحاول دائمًا أن تفهم متى تحتاج إلى عرض النتيجة، ومتى تحتاج إلى إرجاعها لاستخدامها لاحقًا.
{alertSuccess} قاعدة بسيطة: استخدم print للعرض، واستخدم return عندما تريد أن تستفيد من النتيجة داخل البرنامج.