الدوال: نكتبها مرة ونستخدمها مرات
الدالة كتلة شفرة لها اسم نكتبها مرة ونستخدمها مرات كثيرة. في def square(n): الاسم n هو المعامل، أي مكان محجوز. وعند الاستدعاء square(5) تكون القيمة ٥ هي الوسيط، ويحمل n القيمة ٥ أثناء تشغيل الدالة. وكلمة return تعيد نتيجة إلى المكان الذي استُدعيت منه الدالة، فتُستبدل square(5) بالعدد ٢٥ ويمكن استخدامها في عملية حسابية مثل square(3) + 1 وهي ١٠. أما الدالة التي فيها print وليس فيها return فتعرض شيئًا على الشاشة فقط، وتعيد القيمة الخاصة None. قارن r = show(4): تعرض الشاشة ١٦ لكن r تحمل None. والمتغير الذي يُصنع داخل دالة، مثل tax داخل add_tax، محلي: يوجد أثناء تشغيل الدالة فقط، واستخدامه خارجها يعطي خطأ. وقد تكون للدالة معاملات كثيرة مثل area(width, height) وتُطابَق الوسائط بالترتيب. وتجعل الدوال البرامج أقصر وتتيح اختبار قطعة صغيرة في كل مرة.
1def square(n): 2 return n * n 3 4print(square(5)) 5print(square(3) + 1)
25 10
1def show(n): 2 print(n * n) 3 4r = show(4) 5print(r)
16 None
1def add_tax(price): 2 tax = price * 0.1 3 return price + tax 4 5print(add_tax(200))
220.0
1def area(width, height): 2 return width * height 3 4print(area(4, 3))
12
اكتب على الورق دالة double(n) تعيد n * 2 ودالة greet(name) تعيد النص "Hello " متبوعًا بالاسم. اكتب قيمة double(7) وقيمة greet("Mina"). أي دوالك تستطيع استخدامها داخل عملية حسابية، ولماذا؟