Python Functions

یک تابع قطعه کدی است که فقط در هنگام فراخوانی اجرا می‌شود.

شما می‌توانید پارامتر ها را برای توابع ارسال کنید و تابع یک داده به عنوان نتیجه به شما بازمی‌گرداند.

ایجاد یک تابع

در پایتون توابع را می‌توان با کله کلیدی def تعریف نمود.

def my_function():
  print("Hello from a function")

فراخوانی یک تابع

برای فراخوانی یک تابع کافی است نام آن را به همراه یک پرانتز در جلوی آن بنویسید.

def my_function():
  print("Hello from a function")

my_function()

پارامتر های تابع

اطلاعات می‌توانند به عنوان پارامتر به تابع ارسال شوند.

پارامتر ها بعد از نام تابع در داخل پرانتز قرار می‌گیرند. شما می‍‌توانید هر تعداد پارامتر را درون یک تابع قرار دهید، فقط باید آن ها را با علامت کاما (,) از هم جدا کنید.

مثالی که در ادامه می‌بینید یک تابع به همراه یک پارامتر (name) را نشان میدهد که در هنگام فراخوانی ما به این پارامتر مقدار میدهیم.

 

def my_function(name):
  print("Hello" + name)

my_function("mojtaba")
my_function("Torlan")
my_function("sina")

مقادیر پیشفرض برای پارامترها

در ادامه مثالی را ببینید که برای پارامتر تابع یک مقدار پیشفرض را در نظر گرفته است. در این شرایط اگر در هنگام فراخوانی تابع هیچ مقداری به آن ارسال نکنیم از همان مقدار پیشفرض استفاده می‌کند.

def my_function(country = "Norway"):
  print("I am from " + country)

my_function("Sweden")
my_function("India")
my_function()
my_function("Brazil")

برگرداندن یک مقدار از تابع

برای این که از یک تابع بخواهید مقدار مشخصی را برای شما برگرداند می‌توانید از دستور return استفاده کنید.

def my_function(x):
  return 5 * x

print(my_function(3))
print(my_function(5))
print(my_function(9))

توابع بازگشتی

پایتون این امکان را به ما میدهد که بتوانیم توابع بازگشتی را تعریف کنیم. این‎‌ها توابعی هستند که خودشان را صدا می‌زنند و عملا به درون خود یک حلقه به وجود می‌آورند.

توابع بازگشتی یکی از الگوهای اصلی برنامه نویسی و محاسبات ریاضی هستند. به این معنی که این توابع با صدا زدن خودشان میتوانند یک حلقه برای پیمایش روی داده ها به وجود بیاورند.

به یاد داشته باشید که در هنگام نوشتن چنین توابعی باید بسیار دقت نمود چرا که ممکن است تابعی که می‌نویسید هیچگاه تمام نشود و یا از محدوده ظرفیت حافظه خارج شود و بار محاسباتی بسیاری را برای پردازنده به وجود بیاورد. اما با این حال استفاده از توابع بازگشتی یکی از رایج ترین و بهینه ترین روش ها برای حل مسائل ریاضی در برنامه نویسی است.

در ادامه تابع fact را می‌بینید که وظیفه محاسبه فاکتوریل یک عدد مشخص (n) را دارد. این تابع باید در هربار خودش را با یک مقدار کمتر (n-1) صدا بزند.

def fact(n):
  if(n>0):
    result = n + fact(n-1)
    print(result)
  else:
    result = 0
  return result

print("\nResults")
tri_recursion(6)