توابع (Functions)
توابع پایتون کمک می کنند کد تکراری ننویسیم. «تابع (Function)» یک بلوک کد است که فقط هنگام «فراخوانی (Call)» اجرا می شود. همچنین، می تواند نتیجه را «برگرداند (Return)». مثل زنگ تفریحِ ثابت؛ هر وقت صدا زدیم، اجرا می شود.
ساخت تابع با def
با کلمه def یک تابع می سازیم. نام تابع، پرانتز و بدنه لازم است.
def greet():
print("Hello from a function")
نکته: «تورفتگی (Indentation)» مرز بلاک را مشخص می کند. حتماً دو فاصله بگذار.
فراخوانی تابع
برای اجرا، فقط نام تابع و پرانتز را بنویس. سپس پایتون بدنه را اجرا می کند.
def my_function():
print("Hello from a function")
my_function()
def my_function():
print("Hello from a function")
my_function()
my_function()
my_function()
قوانین نام گذاری تابع
نام تابع یک «شناسه (Identifier)» است: با حرف یا زیرخط شروع می شود، حروف، ارقام و زیرخط دارد، و حساس به حروف است.
def calculate_sum():
pass
def _private_function():
pass
def myFunction2():
pass
چرا تابع؟ حذف تکرار
بدون تابع، مجبور می شویم فرمول را هی تکرار کنیم. با تابع، یک بار می نویسیم و بارها استفاده می کنیم.
temp1 = 77
celsius1 = (temp1 - 32) * 5 / 9
print(celsius1)
temp2 = 95
celsius2 = (temp2 - 32) * 5 / 9
print(celsius2)
temp3 = 50
celsius3 = (temp3 - 32) * 5 / 9
print(celsius3)
def fahrenheit_to_celsius(fahrenheit):
return (fahrenheit - 32) * 5 / 9
print(fahrenheit_to_celsius(77))
print(fahrenheit_to_celsius(95))
print(fahrenheit_to_celsius(50))
بازگرداندن مقدار با return
«بازگشت (Return)» نتیجه را به بیرون می فرستد و اجرای تابع را می بندد.
def get_greeting():
return "Hello from a function"
message = get_greeting()
print(message)
def get_greeting():
return "Hello from a function"
print(get_greeting())
نکته: اگر return نداشته باشی، مقدار None بازمی گردد.
تابع خالی با pass
گاهی اسکلت می سازیم و بعداً پر می کنیم. برای بدنه موقت، pass بگذار.
def my_function():
pass
گام های عملی
- یک تابع greet با نام بساز.
- سه بار آن را صدا بزن.
- تابع جمع بنویس و نتیجه را برگردان.
جمع بندی سریع
- def تابع را تعریف می کند.
- فراخوانی با نام و پرانتز است.
- return نتیجه را می فرستد.
- بدون return مقدار None است.
- برای موقت، از pass استفاده کن.
نکته: ادامه مبحث را در توابع: آرگومان ها ببین. همچنین پیش نیاز خوب، حلقه for است. برای مرور شرط ها، منطق شرطی مفید است.