Как я могу суммировать числа, которые я получил на выходе при помощи цикла while?

Рейтинг: 0Ответов: 2Опубликовано: 11.03.2023

У меня есть задача:

"Чем дольше разговариваешь - тем меньше платишь". За первую минуту разговора ты платишь 30 копеек, а за каждую следующую на 3 копейки меньше за предыдущую. Плата за 11 минуту и подальшие уже не считывается. Вопрос: сколько будет стоит абоненту оплата, если он будет разговаривать 10 минут?

Решил я эту часть с помощью вот такого вот когда:

i = 30
while i != 0:
    i = i - 3
    print(i)

Я узнал сколько я заплачу за каждую минуту разговора. Теперь я хочу суммировать все эти числа, полученные на выходе и узнать сколько мне обойдется в общем за 10 минут разговора. Я попробовал суммировать с помощью sum() вот таким образом:

i = 30
while i != 0:
    i = i - 3
    print(sum(i))

После чего получил ошибку:

Traceback (most recent call last):   File
"C:\Users\123\PycharmProjects\pythonProject\main.py", line 5, in
 <module>
     print(sum(i)) TypeError: 'int' object is not iterable

Насколько я понял мне нужно эти числа упорядочить в каком-то списке, чтобы потом с помощью этой функции я смог их всех суммировать. Как это осуществить я ещё не понимаю, буду рад, если вы поможете мне найти выход. Я надеюсь, что обьяснил всё понятно.

Ответы

▲ 0

создайте переменную total и прибавляет туда каждый раз текущую стоимость

i = 30
total = 0

while i != 0:
    total += i
    i = i - 3

несколько советов: конструкцию i = i - 3 лучше заменить на i -= 3.

Также если бы изначальная стоимость была бы, к примеру, 29, то ваш цикл стал бы бесконечным. поэтому надо проверить что i положительный:

i = 30
total = 0

while i > 0:
    total += i
    i -= 3

Если же вам охото использовать список то вот:

i = 30 
arr = []          # создаём пустой список

while i > 0:
    arr.append(i) # добавляем элемент в конец 
    i -= 3

print(arr)        # выводим список
print(sum(arr))   # находим сумму 
▲ 0

Можно положить все элементы в список и после цикла, с помощью функции sum вывести значение

i = 30
ilist = []
while i != 0:
    ilist.append(i)
    i = i - 3

print(sum(ilist))