إذا احتجنا الحساب نفسه في أماكن كثيرة، نعطيه اسمًا مرة واحدة ثم نستخدمه كلما أردنا. هذا هو إنشاء دالة بالكلمة def. هذه دالة تقسم مبلغًا على 3 أشخاص:
def split3(total):
result = total / 3
return result
print(split3(6000))
print(split3(900))2000.0 300.0
| الخطوة | الكود |
|---|---|
| (1) الاسم والمعامل | def split3(total): |
| (2) المعالجة بإزاحة | result = total / 3 |
| (3) إرجاع النتيجة | return result |
| (4) الاستدعاء | print(split3(6000)) |
def ينتهي بـ : وكل أسطر الدالة مُزاحة. والدالة لا تعمل أبدًا حتى نستدعيها. ولا يجوز وضع نقطة . في اسمها.المعامل والوسيط وقيمة الإرجاع
الاسم داخل قوسي def (هنا num) ينتظر قيمة. القيمة التي نمرّرها عند الاستدعاء (مثل 10) تُوضع فيه. وما بعد return يعود إلى مكان الاستدعاء، فنطبعه أو نحفظه في متغير أو نكمل به الحساب:
def calc7(num):
result = num * 7
return result
answer = calc7(10)
print(answer)
print(calc7(3) + 1)70 22
يمكن أن تحتوي الدالة على if وأن تأخذ أكثر من وسيط بينها فاصلة. هذه دالة تعمل مثل min لعددين:
def min2(num1, num2):
if num1 < num2:
result = num1
else:
result = num2
return result
print(min2(5, 10))
print(min2(8, 3))5 3
نطاق المتغير
النطاق هو المكان الذي يمكن فيه استخدام المتغير. المتغير الذي يُنشأ داخل الدالة يعيش داخلها فقط، فإذا استخدمناه خارجها ظهر خطأ:
def split5(total):
result = total / 5
return result
print(result)NameError: name 'result' is not defined
print(split5(7500)). وإذا نسيت return تُرجع الدالة None.تدريبات
أنشئ دالة split4 معاملها total تُرجع total ÷ 4، ثم اطبع ناتج split4(1200).
اضغط «تشغيل» لترى النتيجة. البرنامج يطبع None. أضف السطر الناقص داخل الدالة ليُطبع 70.
تلميح
الدالة لا تُرجع شيئًا. ما الكلمة التي تُرجع النتيجة؟def calc(num):
result = num * 7
print(calc(10))اضغط «تشغيل» لترى النتيجة. استدعِ الدالة calc بالوسيط 3 واطبع الناتج.
def calc(num):
result = num * 5
return result
print(___)اضغط «تشغيل» لترى النتيجة. أنشئ دالة split7 معاملها total تقسم المبلغ على 7، ثم اطبع ناتج استدعائها بالوسيط 14000.
اضغط «تشغيل» لترى النتيجة. أنشئ دالة to_minutes معاملها hours تُرجع عدد الدقائق (hours × 60). اطبع to_minutes(3) ثم to_minutes(1.5).
اضغط «تشغيل» لترى النتيجة. مكتبة تعطي خصم 10% على أي فاتورة قيمتها 500 أو أكثر. أنشئ دالة final_price معاملها price تُرجع price * 0.9 إذا كان price ≥ 500، وإلا تُرجع price كما هو. اطبع final_price(800) ثم final_price(300).
اضغط «تشغيل» لترى النتيجة. النقاط الرئيسية
def name(param):ثم المعالجة بإزاحة ثمreturn، ثم الاستدعاءname(value).- القيمة المُرجعة يمكن طباعتها أو حفظها في متغير.
- المتغير المُنشأ داخل الدالة لا يُستخدم خارجها.