return: اجعل الدالة تعيد نتيجة يمكن استخدامها
في الدرس السابق تعلمنا كيف ننظم الكود باستخدام functions. الآن سنتعلم return، وهي الخطوة التي تجعل الدالة لا تطبع فقط، بل تحسب وترجع نتيجة يمكن تخزينها واستخدامها في أماكن أخرى.
ما النتيجة التي يجب أن تخرج بها؟
في نهاية الدرس ستفهم هذا الشكل:
def calculate_tax(total):
tax = total * 0.15
return tax
ثم تستخدم النتيجة بهذا الشكل:
tax = calculate_tax(total)
لماذا نحتاج return؟
في الدرس السابق دالة التقرير كانت تطبع مباشرة. هذا مناسب للتقرير. لكن ماذا عن دالة تحسب الضريبة؟
نحن لا نريدها أن تطبع فقط. نريدها أن تعطينا قيمة الضريبة حتى نستخدمها لاحقًا في حساب الإجمالي النهائي.
أنشئ ملف الدرس الرابع والعشرين
افتح مجلد الدورة داخل VS Code:
python_course
ثم أنشئ ملفًا جديدًا باسم:
lesson_24.py
افتح الملف داخل Editor.
جرّب return بشكل بسيط
اكتب:
def add_numbers():
result = 5 + 3
return result
answer = add_numbers()
print(answer)
النتيجة:
8
اكتب دالة حساب الضريبة
الآن نكتب دالة خاصة بحساب الضريبة:
def calculate_tax(total):
tax = total * 0.15
return tax
هذه الدالة تستقبل total، وتحسب 15%، ثم تعيد قيمة الضريبة.
استخدم نتيجة الدالة
بعد تعريف الدالة، نستدعيها ونخزن النتيجة:
total = 150 tax = calculate_tax(total) print(tax)
النتيجة:
22.5
أضف دالة الإجمالي النهائي
الآن نكتب دالة ثانية لحساب الإجمالي بعد الضريبة:
def calculate_final_total(total, tax):
return total + tax
هذه الدالة تستقبل total و tax، وترجع الناتج النهائي.
حدّث دالة التقرير
سنجعل دالة التقرير تستقبل الضريبة والإجمالي النهائي أيضًا:
def print_report(products, total, tax, final_total):
print("----- تقرير المنتجات -----")
for product in products:
name = product["name"]
price = product["price"]
print(f"{name}: {price:.2f} ريال")
print(f"عدد المنتجات: {len(products)}")
print(f"الإجمالي قبل الضريبة: {total:.2f} ريال")
print(f"الضريبة: {tax:.2f} ريال")
print(f"الإجمالي النهائي: {final_total:.2f} ريال")
رتّب الكود النهائي على أجزاء
الجزء الأول: دوال الحساب:
def calculate_tax(total):
tax = total * 0.15
return tax
def calculate_final_total(total, tax):
return total + tax
الجزء الثاني: دالة التقرير:
def print_report(products, total, tax, final_total):
print("----- تقرير المنتجات -----")
for product in products:
name = product["name"]
price = product["price"]
print(f"{name}: {price:.2f} ريال")
print(f"عدد المنتجات: {len(products)}")
print(f"الإجمالي قبل الضريبة: {total:.2f} ريال")
print(f"الضريبة: {tax:.2f} ريال")
print(f"الإجمالي النهائي: {final_total:.2f} ريال")
الجزء الثالث: تجهيز المتغيرات الأساسية:
products = [] total = 0 name_prompt = "اسم المنتج أو done: " price_prompt = "سعر المنتج: "
الجزء الرابع: استقبال المنتجات:
while True:
product_name = input(name_prompt).strip()
if product_name.lower() == "done":
break
price_text = input(price_prompt).strip()
price = float(price_text)
product = {
"name": product_name,
"price": price
}
products.append(product)
total = total + price
الجزء الخامس: حساب النتائج واستدعاء التقرير:
tax = calculate_tax(total) final_total = calculate_final_total(total, tax) print_report(products, total, tax, final_total)
شغّل البرنامج
احفظ الملف:
Ctrl + S
ثم شغله:
python lesson_24.py
وإذا لم يعمل أمر python:
py lesson_24.py
اختبر البرنامج
جرّب هذه الإدخالات:
اسم المنتج أو done: Keyboard سعر المنتج: 100 اسم المنتج أو done: Mouse سعر المنتج: 50 اسم المنتج أو done: done
النتيجة المتوقعة:
----- تقرير المنتجات ----- Keyboard: 100.00 ريال Mouse: 50.00 ريال عدد المنتجات: 2 الإجمالي قبل الضريبة: 150.00 ريال الضريبة: 22.50 ريال الإجمالي النهائي: 172.50 ريال
تحدي صغير: غيّر نسبة الضريبة
عدّل دالة calculate_tax لتستقبل نسبة الضريبة:
def calculate_tax(total, tax_rate):
return total * tax_rate
ثم استخدمها:
tax = calculate_tax(total, 0.15)
اختبار نهاية الدرس
قبل الانتقال للدرس القادم، تأكد أنك فهمت هذه النقاط:
خلاصة الدرس
تعلمنا أن return تجعل الدالة تعيد نتيجة يمكن تخزينها واستخدامها. استخدمناها في calculate_tax لحساب الضريبة، وفي calculate_final_total لحساب الإجمالي النهائي.
تذكر القاعدة:
def function_name():
return result
value = function_name()
في الدرس القادم سنتعلم التعامل مع الأخطاء try و except حتى لا ينهار البرنامج عندما يكتب المستخدم سعرًا غير صحيح.
💬 التعليقات
لا توجد تعليقات بعد.
🚫 يجب تسجيل الدخول لإضافة تعليق. دخول / تسجيل