محل مقداردهی اولیه متغیر مهمه. یک جمعکننده که باید برای هر گروه از صفر شروع بشه، باید داخل حلقه گروهها و قبل از حلقه عضوها مقدار بگیره. اگه اون رو فقط یکبار بیرون حلقه اصلی صفر کنیم، نتیجه گروه قبلی وارد گروه بعدی میشه. برنامه همچنان اجرا میشه ولی جوابها به هم نشت میکنن.
مثال تعداد حرفهای هر دسته رو مستقل حساب میکنه. تمرین جمع عددهای هر ردیف یک جدول رو میخواد. خطای رایج صفرکردن total داخل حلقه تکتک عددهاست؛ در اون حالت فقط آخرین عدد هر ردیف باقی میمونه. جای درست بین دو حلقه است: به ازای هر ردیف یک شروع تازه و به ازای هر عدد یک افزایش. ردیف خالی هم باید جمع صفر داشته باشه و جاش در خروجی حفظ بشه. با یک ردیف تنها، باگ انباشتهشدن ممکنه دیده نشه؛ دو ردیف با مقدارهای متفاوت و یک ردیف خالی قدرت بررسی بیشتری دارن.
✍️ مثال حلشده:
groups = [["ab", "c"], ["xy"]]
lengths = []
for group in groups:
total = 0
for word in group:
total += len(word)
lengths.append(total)
assert lengths == [3, 2]
حالا نوبت توئه: row_sums(rows) برای هر ردیف فهرست عددهای صحیح، جمع مستقل همان ردیف را برگرداند؛ [[1,2],[4]]=>[3,4]، [[],[5]]=>[0,5] و []=>[]. باگ total مشترک را اصلاح کن؛ ترتیب ردیفها و خود ورودی نباید تغییر کند. جمعکننده هر ردیف باید از صفر شروع شود.
فعالیت شما
row_sums(rows) برای هر ردیف فهرست عددهای صحیح، جمع مستقل همان ردیف را برگرداند؛ [[1,2],[4]]=>[3,4]، [[],[5]]=>[0,5] و []=>[]. باگ total مشترک را اصلاح کن؛ ترتیب ردیفها و خود ورودی نباید تغییر کند. جمعکننده هر ردیف باید از صفر شروع شود.