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

2

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

کیانا ابراهیمی Answered question اکتبر 14, 2020
Add a Comment
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 خواهیـد رسید ! فرایند فراخوانی یک تابع توسـط خـود آن تـابع را بازگشـت و ایـنگونـه توابـع را بازگشـتی مینامند.

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

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

کیانا ابراهیمی Answered question اکتبر 14, 2020
Add a Comment
Write your answer.
  • Active
  • Views1794 times
  • Answers1 answer
ورود به متاورس | متاورس ایرانی
ورود به متاورس ایران یا همان متاورس ملی

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

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

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