قراره مجموع خریدهای قابل قبول رو حساب کنیم: عددهای منفی خطای ثبتاند. پیش از کدنویسی سه سؤال بپرس: ورودی چیست؟ خروجی چیست؟ شرط قابلقبول بودن چیست؟ اینجا ورودی فهرست عددها، خروجی یک عدد و شرط قابلقبول بودن «بزرگتر یا مساوی صفر» هست.
مسئله رو به سه کار بشکن: مجموع صفر بساز؛ هر مبلغ رو بررسی کن؛ فقط مبلغ معتبر رو اضافه کن.
def total_valid(prices):
total = 0
for price in prices:
if price >= 0:
total += price
return total
print(total_valid([8, -3, 0, 5]))
print(total_valid([]))
برای دنبال کردن کد روی کاغذ (dry-run) تغییر مجموع رو بنویس: ابتدا ۰؛ پس از ۸ برابر ۸؛ با ۳- ثابت؛ با ۰ همچنان ۸؛ با ۵ برابر ۱۳. با نوشتن مقدار هر مرحله، دقیق میبینی برنامه چطور به جواب میرسه.
فقط مثال معمولی کافی نیست. ورودی خالی، صفر، یک عضو و همهٔ مقدارهای نامعتبر «آزمون مرزی» هستن. ابتدا پاسخ مورد انتظار رو مشخص کن، سپس کد رو اجرا کن.
اگه ابزار مناسب یادت نیست، عبارتی دقیق مثل Python str.split documentation رو در مستندات Python جستوجو کن. ببین دستور چه ورودیهایی میگیره، چه نتیجهای میده و مثالش چطور کار میکنه و آزمایش کوچکی بساز. مثلاً تفاوت split بدون آرگومان و split با ویرگول رو جدا امتحان کن. لازم نیست همهٔ دستورها رو حفظ کنی.
فعالیت شما
ورودی، خروجی، قانون و سه آزمون مرزی رو پیش از حل مشخص کن.