فونکشنهای Python
- صفحه قبل چرخه For Python
- صفحه بعدی Lambda Python
فانکشن یک بلوک کد است که تنها در زمان فراخوانی اجرا میشود.
شما میتوانید دادهها را (به عنوان پارامتر) به فانکشن منتقل کنید.
فانکشن میتواند دادهها را به عنوان نتیجه بازگرداند.
ایجاد فانکشن
در Python، از 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 + \" Gates\ my_function(\"Bill\ my_function(\"Steve\ my_function(\"Elon\
مقدار پیشفرض پارامتر
در این مثال، نحوه استفاده از مقدار پیشفرض پارامترها را نشان میدهیم.
اگر ما از فانکشن بدون پارامتر استفاده کردیم، از مقدار پیشفرض استفاده میشود:
نمونه
def my_function(country = \"Pakistan\"): print("من از " + country) my_function("Sweden") my_function("India") my_function() my_function("Brazil")
با ارسال List
پارامترهایی که به فنکشن ارسال میکنید میتوانند هر نوع دادهای باشند (مثل رشته، عدد، لیست، دیکشنری و غیره) و در داخل فنکشن به عنوان نوع دادهای مشابه در نظر گرفته میشوند.
مثلاً، اگر لیست را به عنوان پارامتر ارسال کنید، هنگامی که به فنکشن میرسد همچنان لیست (List) خواهد بود:
نمونه
def my_function(food): برای x در 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))
پارامترهای کلیدی
شما همچنین میتوانید از قالب key = value برای ارسال پارامترها استفاده کنید.
ترتیب پارامترها مهم نیست.
نمونه
def my_function(child3, child2, child1): print("بچگانی که جوانترین است " + child3) my_function(child1 = "Phoebe", child2 = "Jennifer", child3 = "Rory")
در مستندات پایتون، عبارت "پارامترهای کلیدی" معمولاً به عنوان kwargs خلاصه میشود.
پارامترهای نامحدود
اگر نمیدانید که چندین پارامتر به فنکشن خود ارسال خواهید کرد، پیش از نام پارامتر در تعریف فنکشن از * استفاده کنید.
در این صورت، فنکشن یک تورپای (tuple) از پارامترها را دریافت خواهد کرد و میتواند به صورت مناسبی به هر یک از آنها دسترسی داشته باشد:
نمونه
اگر تعداد پارامترها معلوم نباشد، پیش از نام پارامتر از * استفاده کنید:
def my_function(*kids): print("بچگانی که جوانترین است " + kids[2]) my_function("Phoebe", "Jennifer", "Rory")
دستور pass
فنکشن تعریف نتواند خالی باشد، اما اگر به هر دلیلی فنکشن تعریف شده خالی نوشتهاید، از دستور pass برای جلوگیری از خطا استفاده کنید.
نمونه
def myfunction: گذر
ریکورسین
Python نیز از ریکورسین تابع پذیرفته است، این به معنای آن است که توابع تعریف شده میتوانند خود را فراخوانی کنند.
ریکورسین یک مفهوم شایع در ریاضیات و برنامهنویسی است. این به معنای فراخوانی تابع توسط خودش است. مزایای این کار این است که میتوان به راحتی به دادهها دسترسی پیدا کرد تا به نتایج برسیم.
توسعهدهندگان باید بسیار مراقب ریکورسین باشند، زیرا میتوان به راحتی یک تابع بیپایان نوشت یا تابعی که از منابع حافظه یا پردازنده بیش از حد استفاده میکند. اما، وقتی به درستی نوشته شود، ریکورسین میتواند روشی بسیار مؤثر و زیبا از برنامهنویسی باشد.
در این مثال،tri_recursion()
ما را به عنوان یک تابعی که خود را فراخوانی میکند ("ریکورسین") تعریف میکنیم. ما از متغیر 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)
- صفحه قبل چرخه For Python
- صفحه بعدی Lambda Python