همان کار، ورودی تازه
برای حساب هزینه شنبه و یکشنبه نباید حلقه را دوبار کپی کنی. تابع دستورهای یک کار را با یک نام نگه میدارد. def تابع را تعریف میکند؛ کد داخل آن وقتی اجرا میشود که نام تابع را با پرانتز صدا بزنی.
نتیجه را پس بده
جمع هزینههای هر روز
تابع را برای یک لیست خالی و یک خرید هم امتحان کن.
def total_expenses(amounts):
total = 0
for amount in amounts:
total += amount
return total
saturday = total_expenses([45000, 30000])
sunday = total_expenses([25000])
print(saturday)
print(sunday)
print(saturday + sunday)یک راهنمایی میخواهم
+= شکل کوتاه total = total + amount است.
راهنمایی بیشتر
return را بیرون for ولی داخل تابع نگه دار.
amounts پارامتر است: نام ورودی داخل تابع. لیستی که موقع صدا زدن میدهی آرگومان است. return عدد نهایی را برمیگرداند تا بتوانی آن را ذخیره کنی یا با عدد دیگری جمع بزنی. خروجی نمونه به ترتیب ۷۵۰۰۰، ۲۵۰۰۰ و ۱۰۰۰۰۰ است.
چاپ کردن با برگرداندن فرق دارد
اگر return را با print عوض کنی، تابع عدد را نشان میدهد اما نتیجه قابل استفاده برنمیگرداند؛ مقدار پیشفرض برگشتی None است. در این حالت جمع saturday و sunday خطا میدهد. اگر return را داخل حلقه بگذاری، تابع بعد از اولین خرید تمام میشود.
تمرین: تابع remaining_budget(budget, spent) را بساز. پاسخ بدنه: return budget - spent. برای ورودیهای ۱۵۰۰۰۰ و ۱۰۰۰۰۰ باید ۵۰۰۰۰ برگرداند. برای ۱۵۰۰۰۰ و ۱۶۰۰۰۰ باید منفی ۱۰۰۰۰ بدهد؛ کسری هم یک نتیجه معتبر است.
