داغ ترین ویدیو بابلز لرن : هک کلاس های مجازی توسط متین برونسی

ویژگی تصویر

توابع در python

  /  پایتون   /  توابع در پایتون
بنر تبلیغاتی الف

در این بخش به بررسی توابع در پایتون می پردازیم.

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

ما می توانیم برای هر تابع یکسری پارامتر مشخص کنیم و داده هایی را به آن بدهیم.

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

ایجاد یک تابع

در پایتون یک تابع با استفاده از کلمه کلیدی 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

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

آیا این مطلب برای شما مفید بود ؟

خیر
بله
بنر تبلیغاتی ج