٪۴۰ تخفیف تابستانه شروع شد! بزرگترین حراج سال ما

به ما بپیوندید

آموزش توابع پایتون

یک تابع بلوکی از کد است که فقط در صورت فراخوانی اجرا می شود. می توانید داده هایی را که به عنوان پارامتر شناخته می شوند ، به یک تابع منتقل کنید. یک تابع می تواند داده ها را در…

محمد یوسفی

11 سپتامبر 2021

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

می توانید داده هایی را که به عنوان پارامتر شناخته می شوند ، به یک تابع منتقل کنید.

یک تابع می تواند داده ها را در نتیجه بازگرداند.


ایجاد یک تابع

در پایتون یک تابع با استفاده از کلید واژه def تعریف می شود :

مثال

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

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

برای فراخوانی یک تابع ، از نام تابع و پرانتز استفاده کنید:

مثال

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

my_function()

استدلال ها

اطلاعات را می توان به عنوان استدلال به توابع منتقل کرد.

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

مثال زیر دارای یک تابع با یک آرگومان (fname) است. هنگامی که تابع فراخوانی می شود ، یک نام کوچک ارسال می کنیم ، که در داخل تابع برای چاپ نام کامل استفاده می شود:

مثال

def my_function(fname):
  print(fname + " Refsnes")

my_function("Emil")
my_function("Tobias")
my_function("Linus")

استدلال ها اغلب در اسناد پایتون به صورت args کوتاه می شوند .



پارامترها یا استدلال ها؟

اصطلاحات پارامتر و آرگومان را می توان برای یک چیز استفاده کرد: اطلاعاتی که به یک تابع منتقل می شوند.

از دیدگاه یک عملکرد:

پارامتر متغیری است که در داخل پرانتز در تعریف تابع ذکر شده است.

آرگومان مقداری است که هنگام فراخوانی تابع ارسال می شود.


تعداد استدلال ها

به طور پیش فرض ، یک تابع باید با تعداد آرگومان صحیح فراخوانی شود. به این معنی که اگر عملکرد شما انتظار 2 آرگومان را دارد ، باید تابع را با 2 آرگومان فراخوانی کنید ، نه بیشتر و نه کمتر.

مثال

این تابع انتظار 2 آرگومان دارد و 2 آرگومان دریافت می کند:

def my_function(fname, lname):
  print(fname + " " + lname)

my_function("Emil", "Refsnes")

اگر سعی کنید تابع را با 1 یا 3 آرگومان فراخوانی کنید ، با خطا مواجه می شوید:

مثال

این تابع انتظار 2 آرگومان را دارد ، اما فقط 1 آرگومان دریافت می کند:

def my_function(fname, lname):
  print(fname + " " + lname)

my_function("Emil")

استدلال های دلخواه ، *args

اگر نمی دانید چند آرگومان به تابع شما ارسال می شود ، *قبل از نام پارامتر a در تعریف تابع اضافه کنید.

به این ترتیب تابع یک دریافت تاپل از استدلال، و می توانید آیتم بر این اساس دسترسی داشته باشید:

مثال

اگر تعداد آرگومان ها ناشناخته است ، *قبل از نام پارامتر a را اضافه کنید :

def my_function(*kids):
  print("The youngest child is " + kids[2])

my_function("Emil", "Tobias", "Linus")

استدلال های دلخواه اغلب در اسناد پایتون به *args کوتاه می شوند .


کلمات کلیدی استدلال ها

همچنین می توانید آرگومان ها را با نحو key = value ارسال کنید .

به این ترتیب ترتیب استدلال ها مهم نیست.

مثال

def my_function(child3, child2, child1):
  print("The youngest child is " + child3)

my_function(child1 = "Emil", child2 = "Tobias", child3 = "Linus")

عبارت Keyword Arguments اغلب در اسناد پایتون به kwargs کوتاه می شود .


کلمات کلیدی دلخواه Arguments ، ** kwargs

اگر نمی دانید چند آرگومان کلمه کلیدی به تابع شما ارسال می شود ، دو ستاره اضافه کنید: **قبل از نام پارامتر در تعریف تابع.

به این ترتیب تابع یک فرهنگ لغت از آرگومان ها را دریافت می کند و می تواند بر اساس آن به موارد دسترسی پیدا کند:

مثال

اگر تعداد آرگومان های کلمه کلیدی ناشناخته است ، **قبل از نام پارامتر یک دو برابر اضافه کنید :

def my_function(**kid):
  print("His last name is " + kid["lname"])

my_function(fname = "Tobias", lname = "Refsnes")

در اسناد پایتون ، استدلال های دلخواه Kword اغلب به ** kwargs کوتاه می شوند .


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

مثال زیر نحوه استفاده از مقدار پارامتر پیش فرض را نشان می دهد.

اگر تابع را بدون آرگومان فراخوانی کنیم ، از مقدار پیش فرض استفاده می کند:

مثال

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

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

تصویب لیست به عنوان استدلال

شما می توانید انواع داده های استدلال را به یک تابع (رشته ، شماره ، لیست ، فرهنگ لغت و غیره) ارسال کنید ، و در داخل تابع همان نوع داده تلقی می شود.

به عنوان مثال ، اگر یک لیست را به عنوان آرگومان ارسال می کنید ، وقتی به تابع برسد ، همچنان یک لیست خواهد بود:

مثال

def my_function(food):
  for x in food:
    print(x)

fruits = ["apple", "banana", "cherry"]

my_function(fruits)

بازگشت مقادیر

برای اینکه یک تابع مقدار را برگرداند ، از return عبارت زیر استفاده کنید :

مثال

def my_function(x):
  return 5 * x

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

بیانیه گذرنامه

functionتعاریف نمی توانند خالی باشند ، اما اگر بنا به دلایلی functionتعریفی بدون محتوا دارید ، passدستور را برای جلوگیری از خطا در دستور قرار دهید.

مثال

def myfunction():
  pass

بازگشت

پایتون همچنین بازگشت تابع را می پذیرد ، به این معنی که یک تابع تعریف شده می تواند خود را فراخوانی کند.

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

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

در این مثال ، tri_recursion () تابعی است که ما تعریف کرده ایم که آن را خود بنامد (“recurse “). ما از متغیر k به عنوان داده استفاده می کنیم ، که هر بار که مجددا جبران می کنیم ( -1 ) کاهش می یابد. بازگشت زمانی پایان می یابد که شرط از 0 بیشتر نباشد (یعنی زمانی که 0 باشد).

برای توسعه دهندگان جدید ، ممکن است مدتی طول بکشد تا بفهمیم این دقیقاً چگونه کار می کند ، بهترین راه برای آگاهی از آزمایش و اصلاح آن است.

مثال

مثال بازگشتی

def tri_recursion(k):
  if(k > 0):
    result = k + tri_recursion(k - 1)
    print(result)
  else:
    result = 0
  return result

print("\n\nRecursion Example Results")
tri_recursion(6)

منبع

مطالب مرتبط

0 0 رای ها
امتیازدهی به مقاله
اشتراک در
اطلاع از
guest
0 نظرات
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها