Как сделать так ,чтобы считались все введенные числа?Не понимаю как в конечную сумму добавить первый num

    sum = 0
    amount = 0
    num = float(input("Введите цены товаров(0 для выхода): "))
    while num != 0:
       if (num == 0):
          print("Error")
          exit(0)
       num = float(input("Введите цены товаров(0 для выхода): "))
       sum += num
    print("Сумма покупки: ",sum)

Ответы (2 шт):

Автор решения: re1von

В вашем коде множество проблем.

  • Условие if (num == 0) никогда не выполняется, т.к. цикл while при условии num != 0 остановится сразу же, как num получит значение 0.
  • Даже если бы условие if (num == 0) срабатывало, то вы бы получали SystemExit благодаря exit(0) вместо итоговой суммы, а возможность узнать конечную стоимость всей покупки отсутствует вовсе.
  • У вас идет конкретное дублирование кода.
  • Вы проинициализировали неиспользуемую переменную amount.
  • Вы заменяете "системную" функцию sum на переменную.

Я предлагаю улучшить ваш код до:

amount = 0
while price := float(input('Введите цену товара (0 для выхода): ')):
    amount += price
if not amount:
    raise SystemExit('Error')
print(f'Сумма покупки: {amount}')

Что касается вашего вопроса, то вы просто не прибавляете к переменной sum значение первой num.

→ Ссылка
Автор решения: Сергей

Оставаясь в логике вашей программы надо просто присвоить это значение переменной summ, да проверку на ошибку вынести за цикл. Переменную sum переименовал - это имя функции в Python, нехорошо её переопределять.

num = float(input("Введите цены товаров(0 для выхода): "))
if not num:
    print ("Error")
    exit (0)
summ = num
while num:
   num = float(input("Введите цены товаров(0 для выхода): "))
   summ += num
print("Сумма покупки: ",summ)
→ Ссылка