تابعها و استفادهٔ دوباره از کد
یک کار مشخص را نامگذاری کن، ورودی بده و نتیجه را تحویل بگیر.
بعد از این فصل میتوانی…
- تعریف تابع را از فراخوانی آن تشخیص بدهی.
- تفاوت پارامتر، آرگومان و مقدار بازگشتی را توضیح بدهی.
- محاسبهٔ تکراری را به تابع تبدیل کنی.
پیشنهاد برای پیشنیاز: شرطها و مدیریت خطا
تابعها و استفادهٔ دوباره از کد
ویدیوی این فصل هنوز اضافه نشده است. میتوانی همین حالا آموزش متنی و تمرینها را شروع کنی.
تابع آماده و تابع خودمان
تابع قطعهای از کد برای انجام یک کار است. print، input، int، float، min و max از تابعهای آمادهاند. مثلاً max(3, 8) مقدار ۸ را برمیگرداند.
نام تابعهای آماده را برای متغیرها انتخاب نکن. اگر sum = 5 بنویسی، دیگر sum(...) در همان برنامه به تابع جمع اشاره نمیکند.
تعریف با def و اجرای تابع
def تابع را تعریف میکند. بدنهٔ دارای تورفتگی در لحظهٔ تعریف اجرا نمیشود؛ باید نام تابع را همراه پرانتز فراخوانی کنی.
تابع را پیش از اولین فراخوانی تعریف کن. هر بار فراخوانی، دستورهای بدنه دوباره اجرا میشوند.
یک پیام چند بار
def greet():
print("سلام!")
print("شروع")
greet()
greet()خروجی مورد انتظار
شروع سلام! سلام!
پارامتر و آرگومان
پارامتر نام ورودی در تعریف تابع است؛ آرگومان مقدار واقعی هنگام فراخوانی است. در greet(name)، name پارامتر است و در greet("Sara")، متن Sara آرگومان است.
اگر تابع دو پارامتر دارد، در فراخوانی معمول باید دو مقدار با ترتیب درست بدهی. از نامهای گویا استفاده کن تا معنی هر ورودی روشن باشد.
محاسبهٔ مساحت
def area(width, height):
return width * height
print(area(4, 6))
print(area(3, 5))خروجی مورد انتظار
24 15
return با print فرق دارد
print نتیجه را نمایش میدهد. return نتیجه را به محل فراخوانی میفرستد تا بتوانی آن را ذخیره کنی یا در محاسبهٔ دیگری به کار ببری. اجرای تابع با رسیدن به return تمام میشود.
اگر تابع return نداشته باشد، مقدار بازگشتی آن None است. تابعی که فقط چاپ میکند الزاماً نتیجهٔ عددی برای محاسبه برنمیگرداند.
استفاده از نتیجه
def double(number):
return number * 2
result = double(7)
print(result + 1)خروجی مورد انتظار
15
تابع محاسبهٔ دستمزد
تمرین فصل قبل را به تابع computepay(hours, rate) تبدیل کن. تابع باید عدد برگرداند. نتیجهٔ computepay(45, 10) را چاپ کن.
یک راهنمای کوچک
منطق اضافهکاری داخل تابع باشد؛ print را بیرون تابع نگه دار.
پاسخ پیشنهادی و خروجی
def computepay(hours, rate):
if hours > 40:
return 40 * rate + (hours - 40) * rate * 1.5
return hours * rate
print(computepay(45, 10))خروجی نمونه
475.0
خودآزمایی
پاسخ را انتخاب کن و دلیل آن را بخوان. این بخش برای تمرین است و نمرهٔ رسمی ثبت نمیکند.