
توابع در پایتون
در این بخش به بررسی توابع در پایتون می پردازیم.
تابع یک قطعه کد است و تنها زمانی اجرا می شود که فراخوانی شود.
ما می توانیم برای هر تابع یکسری پارامتر مشخص کنیم و داده هایی را به آن بدهیم.
توابع می توانند داده هایی را به عنوان خروجی برگردانند.
ایجاد یک تابع
در پایتون یک تابع با استفاده از کلمه کلیدی def
تعریف می شود:
مثال
فراخوانی یک تابع
برای فراخوانی یک تابع از نام آن همراه با پرانتز استفاده می کنیم:
خروجی:
Hello from a function
آرگومان ها
داده ها می توانند به صورت آرگومان به تابع ارجاع داده شوند.
آرگومان ها بعد از نام تابع در داخل پرانتز مشخص می شوند. می توانید هر تعداد آرگومان که می خواهید اضافه کنید، فقط آنها را با کاما جدا کنید.
مثال
در این مثال یک تابع با پارامتر (fname)
داریم. هنگامی که تابع فراخوانی می شود یک نام را به آن می دهیم، تابع نام را گرفته و همراه با یک رشته دیگر آن را چاپ می کند.
خروجی:
Hello Matin
Hello Mahdi
Hello Ali
پارامتر ها یا آرگومان ها ؟
دو اصطلاح پارامتر و آرگومان را می توان برای یک چیز استفاده کرد: داده هایی که به یک تابع ارجاع داده می شوند.
از نظر یک تابع:
- یک پارامتر متغیری است که در داخل پرانتز هنگام تعریف تابع لیست شده است.
- آرگومان مقداری است که هنگام فراخوانی تابع به آن ارسال می شود.
تعداد پارامتر ها
توابع اگر دارای پارامتر باشند، تنها باید به تعداد همان پارامتر های تعریف شده مقدار بگیرند.
مثلاً اگر تابع شما دو پارامتر دارد باید تابع را با همان دو پارامتر فراخوانی کنید نه بیشتر و نه کمتر.
مثال
در این مثال تابع ما دارای دو پارامتر می باشد:
خروجی:
Matin Boronsi
اگر بخواهید تابع بالا را با یک یا سه آرگومان فراخوانی کنید با خطا مواجه می شوید.
مثال
این تابع هنگام فراخوانی دو آرگومان را دریافت می کند، امّا اینجا یک آرگومان دریافت کرده:
def my_function(fname, lname):
print(fname + " " + lname)
my_function("Matin")
خروجی چیزی شبیه به این خواهد بود:
Traceback (most recent call last):
File "demo_function_args_error.py", line 4, in <module>
my_function("Emil")
TypeError: my_function() missing 1 required positional argument: 'lname'
آرگومان های دلخواه (*args)
اگر نمی دانید که چه تعداد آرگومان قرار است به تابع ارجاع داده شود می توانید قبل از نام پارامتر از علامت ستاره *
استفاده کنید.
مثال
اگر تعداد آرگومان ها ناشناخته است، قبل از نام پارامتر یک * اضافه کنید:
خروجی:
The youngest child is Reza
کلمات کلیدی آرگومان ها
همچنین می توانید آرگومان ها را با دستور key = value ارسال کنید. به این شکل ترتیب آرگومان ها مهم نیست.
مثال
خروجی:
The youngest child is Reza
آرگومان با کلمات کلیدی دلخواه (**kwargs)
اگر نمی دانید که قرار است چند آرگومان با کلمات کلیدی دلخواه به تابع ارجاع داده شود از عملات دو ستاره **
قبل از نام پارامتر استفاده کنید.
مثال
اگر تعداد کلمات کلیدی آرگومانها ناشناخته است، قبل از نام پارامتر یک **
دو ستاره اضافه کنید:
خروجی:
His last name is Boronsi
مقدار پیش فرض برای پارامتر
ما می توانیم برای پارامتر ها در توابع یک مقدار پیش فرض در نظر بگیریم، هنگامی که تابع بدون آرگومان فراخوانی بشود از مقدار پیش فرض استفاده می کند.
مثال
خروجی:
I am from Sweden
I am from India
I am from Norway
I am from Brazil
ارسال یک لیست به عنوان آرگومان
شما می توانید هر نوع داده ای را به عنوان آرگومان به تابع ارسال کنید (رشته، عدد، لیست، دیکشنری و…)
مثال
در این مثال یک لیست را به عنوان آرگومان به تابع ارسال می کنیم:
خروجی:
apple
banana
cherry
برگرداندن مقادیر
برای اینکه یک تابع مقداری را برگرداند از return
استفاده می کنیم.
مثال
خروجی:
15
25
45
عبارت pass
توابع نمی توانند خالی یا بدون محتوا باشند، امّا اگر بنابه دلایلی تابعی دارید که فاقد محتوا است برای جلوگیری از بروز خطا از عبارت pass
استفاده کنید.
مثال
توابع بازگشتی
پایتون بازگشت توابع را می پذیرد یعنی توابع می توانند خودشان را فراخوانی کنند.
بازگشت یک مفهوم رایج ریاضی و برنامه نویسی است، یعنی یک تابع خودش را فراخوانی می کند، مزیت آن این است که می توانید داده ها را برای رسیدن به یک نتیجه خاص حلقه بزنید.
مثال
خروجی:
Recursion Example Results
1
3
6
10
15
21
امکان دارد درک این مطلب برای افرادی که تازه برنامه نویسی را شروع کرده اند کمی مشکل باشد و متوجه نشوند که توابع بازگشتی دقیقاً به چه شکل کار می کنند، بهترین راه برای درک بهتر آن این است که کد ها را مطالعه و آزمون و خطا کنید.
آیا این مطلب برای شما مفید بود ؟
ره آورد حلم
و درود خدا بر او، فرمود: حلم و بردبارى، خويشاوندى است.
حکمت 418 نهج البلاغه