تعریف تابع در پایتون
تابع در برنامهنویسی مجموعه برنامههایی میباشد که معمولا در برنامههای مختلف تکرار میشوند. در واقع یک بار به صورت Function تعریف میشوند تا از تکرار خطوط اضافه جلوگیری شود و زمان برنامهنویسی را کاهش دهد.
ایجاد تابع در پایتون
برای تعریف کردن یک تابع از کلمه def در ابتدا استفاده میکنیم. سپس اسم تابع را نوشته و یک پرانتز مقابل اسم تابع قرار میدهیم و دو نقطه را میگذاریم. در خط بعد میتوانیم راهنمای تابع را به صورت Docstring در داخل سه کوتیشن بنویسیم. سپس عملیاتی که قرار است انجام دهیم را مینویسیم. برای فراخوانی، اسم تابع را به همراه پرانتز نوشته و سپس run میگیریم.
اگر بخواهیم توضیحاتی که در Docstring یک تابع وجود دارد را نمایش دهیم، از تابع ()help استفاده میکنیم. اسم تابع مورد نظر را به عنوان آرگومان تابع ()help در نظر میگیریم.
به متغیری که در داخل پرانتز مقابل اسم Function مینویسیم آرگومان میگویند. که در واقع این متغیر در داخل تابع مورد استفاده قرار میگیرد. همچنین تعداد آن با توجه به هر تعدادی که برای عملیات مورد نظر نیاز است، میتواند تغییر کند.
در تابع گاهی نیاز به گرفتن خروجی میباشد در این صورت از کلمه return استفاده میکنیم و مواردی که میخواهیم با فراخوانی تابع به دست بیاوریم را در مقابل return مینویسیم. در هنگام فراخوانی اسم Function را برابر با یک متغیر میگذاریم. از تابع print برای نمایش خروجی استفاده میکنیم.
در تابع برای آرگومانها میتوان یک پیشفرض در نظر گرفت. در این صورت اگر هیچ چیز بجای آن آرگومان قرار نگیرد مقدار پیشفرض در نظر گرفته میشود.
میتوان در Function ها از دستورات شرطی نیز استفاده کرد.
در تابع بجای استفاده از دستورات شرطی، میتوان در مقابل return تمام شروط را با استفاده از or یا and نوشت.
args * در تابع
گاهی اوقات از تابع یا متدی استفاده میشود که تعداد ورودیهای آن مشخص نیست. در نتیجه ورودی به صورت *args نمایش داده میشود. در *args خروجی به صورت یک Tuple از ورودیها میباشد.
به دلیل اینکه ورودیهای تابع در *args به صورت دنبالهایی از اعداد میباشند، میتوان در حلقهها از آنها استفاده کرد.
به جای args به عنوان ورودی تابع، هر اسم دیگهایی میتوانیم استفاده کنیم.
kwargs ** در تابع
در kwargs** خروجی به صورت یک Dictionary از ورودیهای یک Function میباشد.
به جای kwargs به عنوان ورودی Function هر اسم دیگهایی میتوانیم استفاده کنیم.
در داخل تابع میتوان از args* و kwargs** در کنار هم استفاده کرد. اما به ترتیب قرار گیری این دو در هنگام فراخوانی تابع باید توجه کرد. به عنوان مثال اگر ابتدا args* و سپس kwargs** را به عنوان آرگومان به تابع دادهایم. باید در هنگام فراخوانی تابع نیز دادههای args را در ابتدا و سپس دادههای kwargs را پس از آن بنویسیم.
تابع lambda و دستورات filter و map
تابع lambda یک تابع کوچک و بدون نام میباشد. این نوع تابع دارای سه جز میباشند. جز اول کلمه کلیدی lambda است، جز دوم آرگومان ورودی تابع است که بعد از کلمه lambda قرار میگیرد و نمایانگر ورودی تابع است. جز سوم تعریف عملیات درون تابع میباشد که بعد از علامت : قرار میگیرد.
یکی از کاربردهای مهم تابع lambda، استفاده از آن به عنوان تابع filter و map میباشد.
دستور map
اعمال یک تابع خاص بر روی یک دنباله، با دستور map صورت میگیرد. ورودی اول دستور map، یک تابع است که باید روی لیست اعمال شود که معمولا یک lambda function است. ورودی دوم، نام لیستی است که تابع روی آن اعمال میشود.
دستور filter
دستور filter مانند map عمل میکند. با این تفاوت که امکان چک کردن یک شرط را روی تمام اعضای یک لیست فراهم میکند. این دستور بر روی توابعی اعمال میشود که خروجی آنها به صورت Boolean میباشد. یعنی آیتمهایی از اعضای لیست به عنوان خروجی هستند که شرط داخل تابع را دارا باشند.
برای آشنایی بیشتر با توابع و نحوه کار با آنها میتوانید به دوره جامع آموزش زبان برنامهنویسی پایتون آکادمی رسا مراجعه کنید.