如何从用户输入中捕获浮点值以获取浮点值的总和

任务是:

  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等)或迭代不允许的“布尔”。我是否应该在代码前面的列表中捕获用户的输入,以便为练习的最后一步求和?


除了创建一个列表来解决练习之外,我还应该考虑其他事情吗?如果有,请分享。


小唯快跑啊
浏览 114回答 2
2回答

墨色风雨

而不是extend在您的清单上,您实际上想要append该项目。extend将另一个列表连接到您的列表中,向列表中append添加一个值。但实际上,我们根本不需要这个列表来做你想做的事情。相反,我们可以在考虑项目时将价格添加到总数中。我们也可以在这里打印价格,只依靠foundIt标志输出错误信息# Declare variables.NUM_ITEMS = 5 # Named constant# Initialized list of add-insaddIns = ["Cream", "Cinnamon", "Chocolate", "Amaretto", "Whiskey"]# Initialized list of add-in pricesaddInPrices = [.89, .25, .59, 1.50, 1.75]# Flag variableorderTotal = 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))

跃然一笑

而不是 addcost 是可变的,它应该是列表。扩展运算符仅适用于列表。# Declare variables.NUM_ITEMS = 5 # Named constant# Initialized list of add-insaddIns = ["Cream", "Cinnamon", "Chocolate", "Amaretto", "Whiskey"]# Initialized list of add-in pricesaddInPrices = [.89, .25, .59, 1.50, 1.75] # Flag variableorderTotal = 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)))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python