Как получить значения с плавающей точкой из пользовательского ввода, чтобы получить сумму значений с плавающей точкой - PullRequest
0 голосов
/ 02 октября 2019

Назначение:

  1. Введите код, который ищет в списке имя надстройки, заказанное клиентом.
  2. Введите код, который печатает имя ицена надстройки или сообщение об ошибке, а затем напишите код, который печатает стоимость всего заказа.
  3. Запустите программу, используя следующие данные и убедитесь, что вывод правильный:

    Cream
    Caramel
    Whiskey
    chocolate
    Chocolate
    Cinnamon
    Vanilla
    

Я выполнил основную часть задания, но не понимаю, как получить ранее введенные значения для суммирования / сложения.

Мой код:

# Declare variables.
NUM_ITEMS = 5 # Named constant

# Initialized list of add-ins
addIns = ["Cream", "Cinnamon", "Chocolate", "Amaretto", "Whiskey"]

# Initialized list of add-in prices
addInPrices = [.89, .25, .59, 1.50, 1.75]
 # Flag variable
orderTotal = 2.00  # All orders start with a 2.00 charge

# Get user input
# 
addIn = ""

addIn = input("Enter coffee add-in or XXX to quit: ")
# Write the rest of the program here.
while addIn != "XXX":
    foundIt = False

    for i in range(0, len(addInPrices)):
        price = addInPrices[i]
        product = addIns[i]
        if addIn == product: 
            foundIt = True
            break

    if foundIt == True:

        print("{} Price is ${}".format(product,price))

    else: 
        print("Sorry, we do not carry that.")

    addIn = input("Enter coffee add-in or XXX to quit: ")

# MY COMMENT --- Want to create new list from input above when foundIT == True and sum total to print out total order cost.
    newList=[]  #Create new list to grab values when foundIt == True
    while foundIt == True:

        addCost=price
        newList.extend(addCost)

        foundIt == True
        break

    else:
        foundIt == False

    print(newList)


print("Order Total is ${}".format(orderTotal))

Я обнаружил, что продолжаю пытаться перебирать числа с плавающей запятой (например, addCost, price и т. Д.) Или повторять 'bool', что недопустимо. Должен ли я записать ввод пользователя в список ранее в коде, чтобы я мог суммировать его для последнего шага упражнения?

Должен ли я думать о чем-то еще, кроме создания списка для решения упражнения? Если это так, пожалуйста, поделитесь.

Ответы [ 2 ]

0 голосов
/ 03 октября 2019

Вместо extend в вашем списке, вы действительно хотите append элемент. extend объединяет другой список в ваш список, append добавляет значение в список.

Но на самом деле нам вообще не нужен этот список для того, что вы хотите сделать. Вместо этого мы можем просто добавить цену к общему количеству, поскольку мы рассматриваем пункты. Мы также можем напечатать цену здесь и просто положиться на флаг foundIt, чтобы вывести сообщение об ошибке

# Declare variables.
NUM_ITEMS = 5 # Named constant

# Initialized list of add-ins
addIns = ["Cream", "Cinnamon", "Chocolate", "Amaretto", "Whiskey"]

# Initialized list of add-in prices
addInPrices = [.89, .25, .59, 1.50, 1.75]
# Flag variable
orderTotal = 2.00  # All orders start with a 2.00 charge
# Get user input
# 
addIn = ""
addIn = input("Enter coffee add-in or XXX to quit: ")
# Write the rest of the program here.
while addIn != "XXX":

    foundIt = False

    for i in range(len(addIns)):
        if addIn == addIns[i]:
            print("Found match!")
            orderTotal += addInPrices[i]
            foundIt = True
            print("{} Price is ${}".format(addIns[i],addInPrices[i]))
            addIn = input("Enter coffee add-in or XXX to quit: ")
            continue

    print("Sorry, we do not carry that.")
    addIn = input("Enter coffee add-in or XXX to quit: ")

print("Order Total is ${}".format(orderTotal))
0 голосов
/ 03 октября 2019

Вместо того, чтобы addcost был переменной, он должен быть списком. Оператор расширения работает только со списком.

# Declare variables.
NUM_ITEMS = 5 # Named constant

# Initialized list of add-ins
addIns = ["Cream", "Cinnamon", "Chocolate", "Amaretto", "Whiskey"]

# Initialized list of add-in prices
addInPrices = [.89, .25, .59, 1.50, 1.75]
 # Flag variable
orderTotal = 2.00  # All orders start with a 2.00 charge

# Get user input
# 
addIn = ""

addIn = input("Enter coffee add-in or XXX to quit: ")
# Write the rest of the program here.
while addIn != "XXX":
    foundIt = False

    for i in range(0, len(addInPrices)):
        price = addInPrices[i]
        product = addIns[i]
        if addIn == product: 
            foundIt = True
            break

    if foundIt == True:

        print("{} Price is ${}".format(product,price))

    else: 
        print("Sorry, we do not carry that.")

    addIn = input("Enter coffee add-in or XXX to quit: ")

# MY COMMENT --- Want to create new list from input above when foundIT == True and sum total to print out total order cost.
    newList=[]  #Create new list to grab values when foundIt == True
    while foundIt == True:

        addCost=[price]
        newList.extend(addCost)

        foundIt == True
        break

    else:
        foundIt == False

    print(newList)


print("Order Total is ${}".format(orderTotal+sum(addCost)))
...