← Все вопросы
Цикл for выполняется только один раз — что я делаю не так с отступами?
5
Считаю сумму чисел, но в ответе всегда только последнее число:
nums = [1, 2, 3, 4]
total = 0
for n in nums:
total = n
print(total) # 4
Почему складывается только последнее?
2 ответа
9
✓ Принятый ответ — помог автору
Тут не отступы, а оператор: ты пишешь total = n — это перезапись, на каждом шаге total становится равным текущему n, поэтому в конце остаётся последнее значение 4.
Чтобы накапливать сумму, нужно прибавлять к тому, что уже есть:
for n in nums:
total = total + n # или короче: total += n
print(total) # 10
Разница между total = n и total += n тут принципиальная: первое заменяет, второе добавляет.
3
Кстати, для простой суммы списка цикл вообще не нужен — есть встроенная функция:
print(sum(nums)) # 10
Ваш ответ
Войдите, чтобы ответить на вопрос.