تابع در پایتون — به زبان ساده
در این مطلب، مفهوم تابع در پایتون بررسی میشود. در ادامه، به چیستی و مفهوم تابع، «نحو» (Syntax)، مولفهها و انواع تابع در «زبان برنامهنویسی پایتون» (Python Programming Language) پرداخته میشود. همچنین، روش ساخت یک تابع در پایتون همراه با مثالهای متعدد آموزش داده میشود.
تابع در پایتون
تابع در پایتون گروهی از عبارتهای مرتبط است که یک کار مشخص را انجام میدهند. توابع کمک میکنند تا برنامه به بخشهای کوچکتر و دانهبندی شدهای (ماژولار | Modular) شکسته شود.
هرچه برنامه بزرگ و بزرگتر شود، تابعها به سازمانیافتهتر و قابل مدیریت شدن آن کمک میکنند. علاوه بر این، توابع مانع از تکرار برنامهنویسی برای یک کار واحد میشوند و کد را قابل استفاده مجدد میکنند.
نحو تابع در پایتون
در ادامه، نحو تابع در پایتون و در واقع، چگونگی نوشتن یک تابع در پایتون آموزش داده شده است.
1def function_name(parameters):
2 """docstring"""
3 statement(s)
آنچه در کد بالا نمایش داده شده، تعریف یک تابع است که شامل مولفههای زیر میشود:
- کلیدواژه def علامت آغاز «سرآیند» (Header) تابع است.
- نام تابع (function_name) که به صورت یکتا، تابع را مشخص کند. نامگذاری تابع در پایتون از قواعدی مشابه با قواعد نامگذاری «شناساگرها» (Identifiers) تبعیت میکند.
- پارامترها (آرگومانها) که به وسیله آنها، مقادیر به تابع پاس داده میشوند. آرگومانها اختیاری هستند.
- یک علامت نقل قول یا دو نقطه (:) برای تعیین پایان هدر.
- داک استرینگ (docstring) اختیاری برای تشریح آنکه تابع چه کاری انجام میدهد.
- یک یا تعداد بیشتری دستور پایتون که بدنه تابع را تشکیل میدهند .دستورها باید دارای سطح دندانهگذاری یکسانی باشند (معمولا ۴ فاصله).
- یک دستور return اختیاری برای بازگرداندن یک مقدار از تابع.
مثالی از تابع در پایتون
در ادامه، مثالی از یک تابع در پایتون ارائه شده است.
1def greet(name):
2 """This function greets to
3 the person passed in as
4 parameter"""
5 print("Hello, " + name + ". Good morning!")
چگونگی فراخوانی یک تابع در پایتون
پس از آنکه یک تابع تعریف شد، میتوان آن را در تابعی دیگر، برنامه یا حتی «خط فرمان پایتون» (Python Prompt) فراخوانی کرد.
برای فراخوانی یک تابع در پایتون، کافی است که نام آن را با پارامترهای مناسب آن نوشت.
>>> greet('Paul') Hello, Paul. Good morning!
با اجرای کد بالا در شل پایتون، میتوان خروجی را مشاهده کرد.
داکاسترینگ (Docstring)
اولین رشته پس از عنوان تابع را Docstring میگویند. Docstring مخففی برای Documentation String است. از docstring برای ارائه تعریفی کوتاه از عملکرد تابع استفاده میشود. اگرچه استفاده از docstring اختیاری است، اما مستندسازی یک کار مهم در برنامهنویسی محسوب میشود.
در هر شرایطی نیاز به مستندسازی کدها وجود دارد. در مثال بالا، یک docstring بلافاصله بعد از هدر تابع آماده است. معمولا از سه «'» (به صورت ''') برای نوشتن داکاسترینگ استفاده میشود، بنابراین میتوان آن را تا چند خط ادامه داد. این رشته به عنوان خصیصه __doc__ تابع در دسترس خواهد بود. برای مثال، میتوان کد زیر را در شل پایتون اجرا و خروجی را مشاهده کرد.
>>> print(greet.__doc__) This function greets to the person passed into the name parameter
دستور return
دستور return برای خروج از یک تابع و رفتن به نقطهای استفاده میشود که تابع فراخوانی شده است.
نحو دستور return در پایتون
این دستور میتواند شامل دستوری باشد که ارزیابی و مقدار آن بازگردانده میشود. اگر هیچ عبارتی در دستور وجود نداشت یا خود دستور return درون یک تابع نبود، تابع، شی None را باز میگرداند. مثال زیر در این راستا، قابل توجه است.
>>> print(greet("May")) Hello, May. Good morning! None
در اینجا، None مقدار بازگردانده شده است.
مثالی از return
1def absolute_value(num):
2 """This function returns the absolute
3 value of the entered number"""
4
5 if num >= 0:
6 return num
7 else:
8 return -num
9
10# Output: 2
11print(absolute_value(2))
12
13# Output: 4
14print(absolute_value(-4))
روش کار توابع در پایتون
دامنه و طول عمر متغیرها
«دامنه متغیر» (Scope of Variable)، بخشی از برنامه است که متغیر در آن شناخته شده است. پارامترها و متغیرهای تعریف شده درون یک تابع از بیرون از همان تابع، در دسترس نیستند.
بنابراین، دارای «دامنه محلی» (Local Scope) هستند. طول عمر یک متغیر، مدت زمانی است که متغیر در حافظه قرار دارد. طول عمر یک متغیر درون تابع، به اندازه مدت زمان اجرای آن تابع است. متغیرهای درون تابع پس از بازگشت (return) از تابع از بین میروند. در ادامه، مثالی برای نمایش دامنه متغیر درون یک تابع ارائه شده است.
def my_func(): x = 10 print("Value inside function:",x) x = 20 my_func() print("Value outside function:",x)
در قطعه کد بالا، میتوان مشاهده کرد که مقدار x به طور مقدماتی برابر با ۲۰ است. حتی اگر تابع ()my_func مقدار x را به ۱۰ تغییر دهد، مقدار بیرون از تابع را تحت تاثیر قرار نمیدهد. این موضوع به این دلیل است که متغیر x درون تابع (برای تابع محلی است) از متغیر بیرون تابع متفاوت است. از سوی دیگر، متغیرهای بیرون تابع از درون آن تابع قابل مشاهده هستند. در واقع، متغیرهای بیرون از یک تابع، دارای «دامنه سراسری» (global scope) هستند. شایان توجه است که میتوان این مقادیر را از درون تابع خواند، اما نمیتوان آنها را تغییر داد (نوشت). به منظور ویرایش مقدار متغیرهای بیرون از تابع، این متغیرها باید با استفاده از کلیدواژه global تعریف شوند. برای مطالعه بیشتر پیرامون دامنه متغیرها، مطالعه مطلب «دامنه متغیرها در پایتون — به زبان ساده» توصیه میشود.
انواع تابعها
اساسا، توابع به دو دسته کلی تقسیم میشوند که در ادامه بیان شدهاند.
- «توابع توکار» (Built-in Functions): توابعی که به صورت توکار در پایتون هستند.
- توابع تعریف شده توسط کاربر (User-Defined Functions): توابعی که توسط خود کاربران تعریف میشوند.
اگر نوشته بالا برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای برنامهنویسی پایتون
- آموزش تکمیلی برنامهنویسی پایتون
- مجموعه آموزشهای دادهکاوی و یادگیری ماشین
- زبان برنامهنویسی پایتون (Python) — از صفر تا صد
- یادگیری علم داده (Data Science) با پایتون — از صفر تا صد
- آموزش پایتون (Python) — مجموعه مقالات جامع وبلاگ فرادرس
- کاربرد پایتون چیست و با آن چه میتوان کرد؟ | راهنمای کاربردی
^^
ممنون
خوب بود. ممنون
سلام می خواستم از خانم الهام حصارکی بسیار تشکر کنم واقعا عالین بخدا
عالی بود سپاسگذارم