Цикл While. Сумма чисел
Нужно считывать целые числа до тех пор, пока не встретится фраза: "The End". Вывести сумму считанных чисел.
summ = 0
s = input()
while s != "The End":
summ += int(s)
s = input(s)
print (summ)
ВВОД:
3
5
The End
Выводит 358, хотя должен выводить8.
Ответы (3 шт):
Автор решения: Эникейщик
→ Ссылка
То, что в скобках input(), то выводится на печать. Поэтому уже введенные значения (3 и 5) печатаются, а потом и сумма (8). Вот и получается 358.
s = input() # убрать s из скобок
Автор решения: AnnaBazueva
→ Ссылка
Walrus
Используя моржовый оператор присваивания - walrus,
можно использовать функцию input() один раз в проверяемом циклом условии.
Стабильный код выглядит так:
summ = 0
while (s := input()) != "The End":
if s[1:].isdecimal() if s[0] == "-" else s.isdecimal():
summ += int(s)
else:
print("Цикл прерван, на вход ожидаются целые числа.")
break
print(f"Сумма чисел: {summ}")
Для оператора ”walrus” есть PEP 572,
начните знакомство с раздела Примеры (Examples)