الدرس 8 من 10
الدوال (Functions)
أهم أداة عشان كودك يبقى منظم.
الـ Function زي ماكينة العصير
بتحط فيها فاكهة (المدخلات، اسمها Parameters)، بتعمل شغلها جوه، وترجعلك عصير (الناتج بيطلع بـ return). مش محتاج تعرف بتعصر إزاي كل مرة، بس تستخدمها.
def add_vat(price, rate=0.14): # rate has a default value """Return the price after adding VAT.""" return price * (1 + rate) print(add_vat(100)) # uses default 14% print(add_vat(100, 0.05)) # custom rate print(add_vat(rate=0.10, price=500)) # keyword arguments
def الكلمة اللي بتعرّف بيها دالة جديدة.parameter الاسم اللي في التعريف زي price.argument القيمة الحقيقية اللي بتبعتها زي 100.default قيمة افتراضية لو محدش بعت حاجة.docstring النص اللي تحت التعريف وبيشرح الدالة بتعمل إيه.print غير return
✓ returnبترجع القيمة للكود اللي نادى الدالة، فتخزنها في متغير وتكمل بيها.
✗ printبتعرض النتيجة على الشاشة وخلاص، ومش هتعرف تستخدمها في حسابات بعدها.
مثال واقعي: فاتورة الكهربا بالشرايح
# NOTE: simplified prices for learning, not real tariffs def electricity_bill(kwh): if kwh <= 50: return kwh * 0.68 elif kwh <= 100: return 50 * 0.68 + (kwh - 50) * 0.78 else: return 50 * 0.68 + 50 * 0.78 + (kwh - 100) * 0.95 for usage in [40, 90, 250]: print(f"{usage} kWh -> {electricity_bill(usage):.2f} EGP")
💡 الـ Scopeأي متغير بتعمله جوه الدالة بيعيش جواها بس ويختفي أول ما تخلص، واسمه Local variable. لو عايز قيمة تطلع برا، رجّعها بـ
return.