Member 13340390 Ответов: 2

Проблема в суммировании в Python


Я использую python 2.7.13. Я должен был сделать программу, которая вводит тип продукта, а затем суммирует сумму для всех введенных продуктов. Я пробовал сделать один, но он не работает.
всего существует 5 типов продуктов, которые можно ввести. Вот их названия и цены
булочка 0,50
кофе 1.20
торт 1.50
сэндвич 2.10
десерт 4.00

Что я уже пробовал:

while True:
    item = str(input("Which item would you like to buy?"))
    elif item == 'bun':
        abun = abun + 0.50
        nbun += 1
        continue
    elif item == 'coffee':
        acoffee = acoffee + 1.20
        ncoffee += 1
        continue
    elif item == 'cake':
        acake = acake + 1.50
        ncake += 1
        continue
    elif item == 'sandwich':
        asandwich = asandwich + 2.10
        nsandwich += 1
        continue
    elif item == 'dessert':
        adessert = adessert + 4.00
        ndessert += 1
        continue
    user_input = raw_input('type yes to continue and end to terminate:')
    if user_input == 'end':
        break
    total = abun + acoffee + acake + asandwich + adessert

2 Ответов

Рейтинг:
8

Member 1091218

фиксированное решение прежде всего должно быть вне цикла while


Рейтинг:
2

Member 1091218

Привет попробуй это
Я предполагаю, что вы вводите все переменные в ноль

abun = 0
acoffee=0
acake=0
asandwich=0
adessert=0
nbun=0
ncake=0
ncoffee=0
nsandwich=0
ndessert=0



while True:
    item = raw_input("Which item would you like to buy?")
    if item == 'bun':
        abun = abun + 0.50
        nbun += 1
    elif item == 'coffee':
        acoffee = acoffee + 1.20
        ncoffee += 1
    elif item == 'cake':
        acake = acake + 1.50
        ncake += 1
    elif item == 'sandwich':
        asandwich = asandwich + 2.10
        nsandwich += 1
    elif item == 'dessert':
        adessert = adessert + 4.00
        ndessert += 1
    user_input = raw_input('type yes to continue and end to terminate:')
    if user_input == 'end':
        break
total = abun + acoffee + acake + asandwich + adessert


Member 13340390

Это работает, спасибо, но там все еще есть проблема. Если я введу три типа элементов, например, три из них - "булочка", общий выход должен быть 1,50, тогда как эта программа дает выход 1,00, почему это так