الدالة قد تحتاج أكثر من قيمة. نكتب المعاملات بينها فواصل، ونمرّر الوسائط بنفس العدد والترتيب. هذه دالة تجمع أزمنة ثلاث مراحل في سباق، ثم نحفظ ناتجها لكل فريق:
def add_times(stage1_time, stage2_time, stage3_time):
time = stage1_time + stage2_time + stage3_time
return time
teamA = add_times(37.5, 62.5, 56.5)
teamB = add_times(44, 57, 64)
print(teamA)
print(teamB)
print("The fastest time is " + str(min(teamA, teamB)))156.5 165 The fastest time is 156.5
TypeError.وقد لا تحتاج الدالة أي قيمة؛ نكتب قوسين فارغين عند تعريفها وعند استدعائها:
def good_evening():
greeting = "Good evening!"
return greeting
print(good_evening())Good evening!
if و for داخل الدالة
جسم الدالة برنامج صغير، فيمكن أن يحتوي على شروط. وreturn تُنهي الدالة فورًا، فلا يُنفّذ ما بعدها:
def grade(score):
if score >= 85:
return "Excellent"
elif score >= 50:
return "Pass"
else:
return "Try again"
for s in [92, 70, 40]:
print(grade(s))Excellent Pass Try again
ويمكن أن تحتوي على حلقة. هذه دالة تضرب العدد في نفسه عددًا من المرات:
def power(base, times):
num = 1
for i in range(times):
num = num * base
return num
print(power(3, 4))
print(power(2, 10))81 1024
من المخطط الانسيابي إلى الكود
قبل كتابة برنامج فيه شروط متداخلة نرسم مخططًا انسيابيًا يرتّب الخطوات. كل شكل في المخطط له مقابل في Python:
| الشكل | معناه | في Python |
|---|---|---|
| معيّن | سؤال نعم / لا | if weather == "sunny": |
| سهم «لا» | الطريق الآخر | else: |
| مستطيل | عمل يُنفَّذ | print("play soccer") |
| معيّن بعد «نعم» | شرط داخل شرط | if مُزاحة داخل if |
weather = "sunny"
friends = 11
if weather == "sunny":
if friends >= 11:
print("play soccer")
else:
print("play badminton")
else:
print("watch a movie")play soccer
تدريبات
أضف المعامل الثالث stage3_time إلى الدالة وإلى المجموع، ومرّر 56.5 عند الاستدعاء.
def add_times(stage1_time, stage2_time, ___):
time = stage1_time + stage2_time + ___
return time
teamA = add_times(37.5, 62.5, ___)
print(teamA)اضغط «تشغيل» لترى النتيجة. في السطر الأخير اطبع The fastest time is متبوعة بأصغر قيمة بين teamA و teamB و teamC (استخدم min و str).
def add_times(stage1_time, stage2_time, stage3_time):
time = stage1_time + stage2_time + stage3_time
return time
teamA = add_times(37.5, 62.5, 56.5)
teamB = add_times(44, 57, 64)
teamC = add_times(42, 63.5, 59)
اضغط «تشغيل» لترى النتيجة. أنشئ دالة mul معاملاها num1 و num2 تُرجع حاصل ضربهما، ثم اطبع ناتج mul(9, 7).
اضغط «تشغيل» لترى النتيجة. أنشئ دالة good_morning بلا وسائط تُرجع النص Good morning، ثم استدعها واطبع ناتجها.
اضغط «تشغيل» لترى النتيجة. حوّل المخطط إلى كود: داخل الفرع الأول، بدل السطر الموجود، إذا كانت main_ticket تساوي "fish and chips ticket" اطبع Swap it with a friend، وإلا اطبع Use the steak ticket.
ticket_type = "main dish"
main_ticket = "fish and chips ticket"
if ticket_type == "main dish":
print("Check the ticket")
else:
print("Use the cake ticket")اضغط «تشغيل» لترى النتيجة. تذكرة المتحف: من عمره أقل من 12 يدفع 20، والطالب يدفع 30، وغيرهما يدفع 50. أنشئ دالة ticket_price معاملاها age و is_student تُرجع السعر، ثم اطبع ticket_price(10, False) و ticket_price(17, True) و ticket_price(30, False) بهذا الترتيب.
اضغط «تشغيل» لترى النتيجة. أنشئ دالة count_letter معاملاها word و letter تُرجع عدد مرات ظهور الحرف في الكلمة (استخدم for). اطبع count_letter("assessment", "s").
اضغط «تشغيل» لترى النتيجة. النقاط الرئيسية
- بعدة وسائط:
def f(a, b, c):ونمرّرها بنفس العدد والترتيب، وبلا وسائط:def f():. - يمكن وضع if و for داخل الدالة، و
returnتُنهيها فورًا. - في المخطط الانسيابي: المعيّن = if، وفرع «لا» = else، والمستطيل = عمل.