توابع بازگشتی چیست ؟ توضیح دهید .

2

توابع بازگشتی چیست ؟ توضیح دهید .

کیانا ابراهیمی سوال پاسخ داده شده اکتبر 14, 2020
گذاشتن نظر
0

توابع بازگشتی چیست ؟ توضیح دهید .

ما اشاره کردیم که یک تابع میتواند توسط تابع دیگري فراخوانی شود و شـما چنـدین مثـال را در این مورد ملاحظه کردید. جالبتر اینکه یک تابع میتواند خودش را هم فراخوانی کند. ممکن است مزایاي چنین امکـانی به خوبی معلوم نباشد، اما این یکی از جذابترین و جالبترین کارهایی است که یـک برنامـه مـیتوانـد انجام دهد. براي نمونه به تابع زیر بنگرید:

def countdown(n):
if n == 0:
print “Blastoff!”
else:
print n
countdown(n-1)

تابع countdown انتظار دارد که پارامتر n مثبت باشـد. اگـر n صـفر باشـد خروجـی، کلمـۀ !Blastoff است، در غیـر ایـن صـورت خروجـی n اسـت و سـپس تـابعی بـه نـام countdown

(خودش) فراخوانی میشود و 1-n به عنوان آرگومانی به آن فرستاده میشود. اگر تابعی مانند تابع زیـر را فراخوانی کنید چه اتفاقی میافتد؟

>> countdown(3)

اجراي countdown با 3=n شروع میشود و چون n صفر نیست، خروجی مقدار 3 میباشد و سـپس تابع خودش را صدا میزند . . . اجراي countdown با 2=n شروع میشود و چون n صفر نیست، خروجی مقدار 2 میباشد و سپس تابع خودش را صدا میزند . . . اجراي countdown با 1=n شروع میشود و چون n صفر نیست، خروجـی مقـدار 1 میباشد و سپس تابع خودش را صدا میزند . . . اجراي countdown با 0=n شروع میشود و چون n برابر با 0 است، خروجی کلمۀ !Blastoff است و سپس باز میگردد. آن تابع countdown که پارامتر 1=n را گرفته بود باز میگردد. آن تابع countdown که پارامتر 2=n را گرفته بود باز میگردد. آن تابع countdown که پارامتر 3=n را گرفته بود هم باز میگردد. و سپس شما به __main __بر میگردیـد (چـه سـفري!!). بنـابراین کـل خروجـی کـه دیـده میشود به این صورت است:

3
2
1
Blastoff!

به عنوان دومین مثال دوباره به تابع newLine و threeLines نگاه کنید:

def newline():
print
def threeLines():
newLine()
newLine()
newLine()

اگر چه این توابع کار میکنند اما اگر بخواهیم خروجی 2 یا 106 خط جدید باشد، کمکی به مـا نمیکنند. چارة بهتر آن است که تابعی به این صورت بنویسیم:

nLines(n): def
if n > 0:
print
nLines(n-1)

این برنامه شبیه به countdown است؛ تا زمانیکه n بزرگتر از 0 است، خروجـی یـک خـط جدید است و سپس تابع خودش را جهت چاپ 1-n خط جدید دیگر فراخـوانی مـیکنـد. بـدینسـان تعداد کل خطوط جدید (1-n+(1 است که اگر محاسبات را درست انجام دهید به نتیجـۀ n خواهیـد رسید ! فرایند فراخوانی یک تابع توسـط خـود آن تـابع را بازگشـت و ایـنگونـه توابـع را بازگشـتی مینامند.

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

بستر اموزش های ویدویی 

کیانا ابراهیمی سوال پاسخ داده شده اکتبر 14, 2020
گذاشتن نظر
پاسخ خود را بنویسید .
  • فعال
  • بازدیدها1624 times
  • پاسخ ها1 پاسخ
ورود به متاورس | متاورس ایرانی
ورود به متاورس ایران یا همان متاورس ملی

علامت ذره بین Tutorials سمت راست به رنگ قرمز به شما کمک خواهد کرد .

جدید ترین سوالات پرسیده شده

منقضی شدن سم بتانال 1 پاسخ | 0 آرا
ایا ایدز گزفتم؟ 0 پاسخ ها | 0 آرا
انتخاب ورزش رزمی 0 پاسخ ها | 1 رای
وزارت تعاون کار و رفاه اجتماعی نماد اعتماد الکترونیک اسناد و املاک کشور مرکز آموزش ویدیویی انجمن حم فروشگاه ملی تولید کنندگان مدیریت بر مدیران حم سامانه حیوانات رسانه ملی اخبار متا دانشگاه متاورس استخدام | دانش فروشگاه حم تبلیغات ملی بازار NFT متاورس رنگ نقشه ملی سه بعدی متا املاک و مستغلات