یک تابع بازگشتی به چه صورت هست ؟

2

یک تابع بازگشتی به چه صورت هست ؟

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

یک تابع بازگشتی به چه صورت هست ؟

کمی از بحث اصلی دور شدیم. در بخش 21-3 قصـد داشـتیم تـابعی بنویسـیم کـه بـا گـرفتن آرگومانی بهعنوان بعد یک دنبالۀ تکبعدي، لیستی از صفرها را بازگرداند. حال اگر بخواهیم این تابع دو آرگومان بگیرد و یک دنبالۀ دو بعدي را بازگرداند باید چه عملی انجام دهیم؟

def sequence(a, b):
zeroList = lambda n : [0 for i in range(n)]
zl = zeroList(a)
for i in range(len(zl)):
zl[i] = zeroList(b)
return zl

در ابتداي تابع sequence ،تابع zeroList را تعریف میکنیم و براي عضو اول یک دنبالـۀ تکبعدي از 0ها میسازیم. حال این دنباله را پیمایش میکنیم و اعضاي آن را به لیستهاي تـکبعـدي از بعد دوم، b ،تغییر میدهیم. بنابراین هرگاه این تابع را فراخوانی کنیم، یک لیست دو بعدي از 0هـا را نتیجه میگیریم:

>> print sequence(2, 3)
[[0, 0, 0], [0, 0, 0]]

حتماً تا به حال وسوسه شدهاید، تابعی بنویسید که آرگومـانهـاي بیشـتري را بـهعنـوان ابعـاد دریافت کند. اگر بخواهیم تعداد آرگومانها اختیاري باشد، میتوانیم آنها را در قالـب یـک چنـدتایی بـه تابع بفرستیم و از آنها استفاده کنیم. براي ساختن دنبالۀ چندبعدي هم تنها کاري که باید انجام دهیم این است که به جاي اسـتفاده از تابع zeroList در انتساب به اعضاي لیست تکبعدي، تابع خودمان را فراخوانی کنیم. چرا که هـر عضو این لیست باید به یک دنبالۀ چندبعدي تبدیل شود.آرگومانهاي ارسالی، همـۀ اعضـاي چنـدتایی، به جز عنصر اول خواهند بود:

def sequence(d):
zeroList = lambda n:[0 for i in range(n)]
zl = zeroList(d[0])
if len(d) == 1:
return zl
else:
for i in range(len(zl)):
zl[i] = sequence(n[1:])
return zl

خروجی تابع براي ساخت یک دنبالۀ سهبعدي به این صورت خواهد بود:

>> print sequence((2,3,2))
[[[0, 0],[0, 0],[0, 0]],[[0, 0],[0, 0],[0, 0]]]

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

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

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

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

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

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