2016-06-11 2 views
0

Я работаю над проектом, но я не могу понять, что это за весь цикл. Я создаю небольшую программу квитанции, и я могу получить пользовательский ввод за цену своих товаров, однако многие из них хотят войти. Но я не могу понять, как сообщить программе добавить все элементы, которые они вводят, для создания промежуточного итога. Иди ко мне, я просто новичок. Вот код, который я до сих пор:Как назначить переменную цене в цикле while для получения промежуточного итога?

import locale 
locale.setlocale(locale.LC_ALL, '') 

print("Welcome to Publix".center(80)) 


while(True): 
    Price = float(input("Price of item: ")) 
    if(Price == -1): 
     break 





print("Thank you for shopping at Publix!".center(80)) 
#Tax = Subtotal * 0.065 
+0

Почему мой ответ не принимается? –

ответ

1

Вы должны инициализировать подытог в 0 до цикла и добавить цену каждый раз для итога.

import locale 
locale.setlocale(locale.LC_ALL, '') 

print("Welcome to Publix".center(80)) 

Subtotal = 0 
while(True): 
    Price = float(input("Price of item: ")) 
    if(Price == -1): 
     break 

    Subtotal = Subtotal + Price 





print Subtotal; 
print("Thank you for shopping at Publix!".center(80)) 
#Tax = Subtotal * 0.065 
+0

Я ввел это в свой код, но я не получил итоговый результат после ввода -1, но еще – Zjm4192

+0

. Для этого вам нужно распечатать промежуточный результат во время цикла –

+0

@ Zjm4192: обновлен код –

0

Используйте переменную (subtotal), чтобы скопить значения цены. Вы можете добавить блок try-except-else, чтобы предотвратить неправильный ввод пользователя, который не может быть преобразован в float из-за нарушения кода. При этом, ваш код немного меньше ошибок:

import locale 
locale.setlocale(locale.LC_ALL, '') 

print("Welcome to Publix".center(80)) 

subtotal = 0 
while True: 
    try: 
     price = float(input("Price of item (enter -1 to stop): ")) 
     if price == -1: 
      break 
    except ValueError: 
     print("The format of the price you entered is not acceptable") 
    else: 
     subtotal += price 

print("Thank you for shopping at Publix!".center(80)) 
# tax = subtotal * 0.065 

Я предлагаю вам сохранить ваши цены с помощью decimal по причинам, связанным с точностью.

Смежные вопросы