ویدیو آموزش توابع بازگشتی در پایتون

October 2020

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

 

 

 #  معرفی توابع بازگشتی پایتون

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

 

در کد زیر، تابع fn یک تابع بازگشتی است، زیرا خودش را صدا میزند:

def fn():
    # ...
    fn()
    # ...

 

در استفاده از توابع بازگشتی باید هوشیار باشید چون ممکن است یک حلقه بینهایت ایجاد کنید و حتما باید شرایطی را برقرار کنید تا اجرای تابع متوقف شود:

def fn():
    # ...
    if condition:
        # stop calling itself
    else:
        fn()
    # ...

 

دوره پیشنهادی: دوره آموزش رایگان پایتون

 

 #  مثال از توابع بازگشتی پایتون

بیایید چند مثال از توابع بازگشتی پایتون ببینیم.

 

 

 +  مثال اول: ساخت یک تابع بازگشتی برای شمارش تا صفر

فرض کنید باید یک تابع شمارش معکوس ایجاد کنید که از یک عدد مشخص به صفر می‌شمرد. در این حالت میتوانید به خوبی از تابع بازگشتی استفاده کنید:

def count_down(start):
    print(start)

    next = start - 1
    if next > 0:
        count_down(next)

 

در کد بالا یک تابع به نام count_down ساختیم که ابتدا عدد را چاپ کرده و سپس یکی از آن کم میکند. در مرحله بعد بررسی میکند که آیا عدد به صفر رسیده است یا خیر. اگر به صفر نرسیده بود، با عدد کمتر دوباره خودش را صدا میزند اما اگر به صفر رسیده بود از تابع خارج میشود. تابع count_down آنقدر خودش را صدا میزند تا عددی که با آن شروع کرده بود به صفر برسد. دقت کنید که نوشتن شرط if در اینجا الزامی است و اگر آن را ننویسید یک حلقه بینهایت ایجاد کرده‌اید.

 

 

 +  مثال دوم: ساخت یک تابع بازگشتی برای جمع زدن یک دنباله عددی

در این مثال میخواهیم تابعی بنویسیم که مجموع یک دنباله عددی را حساب میکند، مثلا از 1 تا 100. در این مثال هم میتوانیم به سادگی از تابع بازگشتی استفاده کنیم:

def sum(n):
    if n > 0:
        return n + sum(n-1)
    return 0

 

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

 

برای اطلاعات بیشتر پیشنهاد میکنیم به این لینک سر بزنید: StackOverflow

ارسال نظر

تلاش میکنم سوالات شما را در کمتر از یک روز پاسخ بدم

نوید

November 2020

خیلی خیلی زیبا بود همینطور با قدرت ادامه بدید

پاسخ به نظر


امیرحسین بیگدلو

November 2020

خیلی ممنون