توابع محض در پایتون چیست ؟

0

توابع محض در پایتون چیست ؟

به زودي ما دو نسخه از یک تابع به نام addTime را خواهیم نوشـت کـه مجمـوع دو زمـان را محاسبه میکند. آنها دو نوع از توابع را نشان خواهند داد: توابع محض و تغییردهندهها. در زیر نسخۀ اجمالی از تابع addTime را میبینید:

def addTime(t1, t2):
sum = Time()
sum.hours = t1.hours + t2.hours
sum.minutes = t1.minutes + t2.minutes
sum.seconds = t1.seconds + t2.seconds
return sum

تابع یک شیء Time جدید میسازد، مشخصههاي آن را مقدار دهی میکند و آدرسی به شـیء جدید را برمیگرداند. این تابع، یک تابع محض نامیده میشود زیرا هیچکدام از اشـیائی کـه بـه عنـوان پارامتر به آن فرستاده شده را تغییر نمیدهد و هیچ اثرات جانبی از قبیل نمایش یک مقـدار یـا گـرفتن یک ورودي از کاربر ندارد.
currentTime که شامل زمان جاري است و breadTime که مدت زمان براي پختن نـان اسـت. سپس ما از addTime براي بهدست آوردن لحظهاي که نان پخته میشود استفاده میکنیم. اگر هنـوز نوشتن تابع printTime را تمام نکردهاید، قبل از اینکه شروع به کار کنید 14-2 نگاهی بیاندازید:

>>> currentTime = Time()
>>> currentTime.hours = 9
>>> currentTime.minutes = 14
>>> currentTime.seconds = 30
>>> breadTime = Time()
>>> breadTime.hours = 3
>>> breadTime.minutes = 35
>>> breadTime.seconds = 0
>>> doneTime = addTime(currentTime, breadTime)
>>> printTime(doneTime)

خروجی برنامه 30:49:12 است که درست میباشد. از طرف دیگـر مـواردي وجـود دارد کـه نتیجه درست نخواهد بود. آیا میتوانید یکی از این موارد را حدس بزنید؟ مشکل آنجا است که این تابع وقتی که تعداد ثانیهها یا دقایق بیشتر از شصت میشـود درسـت عمل نمیکند. وقتی این حالت اتفاق میافتد ما مجبوریم ثانیههاي اضافی را بـه سـتون دقیقـههـا و یـا دقیقههاي اضافی را به ستون ساعتها انتقال دهیم. در اینجا نسخۀ دوم و تصحیح شدة تابع را میبینید:

def addTime(t1, t2):
sum = Time()
sum.hours = t1.hours + t2.hours
sum.minutes = t1.minutes + t2.minutes
sum.seconds = t1.seconds + t2.seconds
if sum.seconds >= 60:
sum.seconds = sum.seconds – 60
sum.minutes = sum.minutes + 1
if sum.minutes >= 60:
sum.minutes = sum.minutes – 60
sum.hours = sum.hours + 1
return sum

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

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

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

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

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

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

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