我有一个挑战,我需要为Codio完成,但我被卡住了。挑战是创建一个杂货项目列表(你会在'while'语句中看到我的意思)。然后通过将价格乘以该项目的数量,然后将它们全部添加并显示它来查找每个项目的成本。我一直收到错误:
“TypeError:不能将序列乘以'float'”
类型的非int
当我尝试乘以值* value2时。我已经指定列表中的哪个字典从中拉出键/值(通过设置x等于列表中元素的数量)以及从哪个键/值中提取数字,所以我不知道究竟发生了什么。我如何将'number'的值乘以'price'的值?下面的代码只是我尝试过的众多方法之一。 谢谢!
grocery_item = {}
grocery_history = []
stop = 'go'
while stop!='q':
item_name=input("Item name:\n")
quantity=int(input("Quantity purchased:\n"))
cost=float(input("Price per item:\n"))
grocery_item={'name':item_name, 'number':int(quantity), 'price':float(cost)}
grocery_history.append(grocery_item)
stop=input("Would you like to enter another item?\nType 'c' for continue or 'q' to quit")
grand_total=0
#Define a 'for' loop.
for x in range(0, len(grocery_history)):
value=float(grocery_history[x]['number'])
value2=float(grocery_history[x]['price'])
#Calculate the total cost for the grocery_item.
item_total="%.2f" % value*value2
#Add the item_total to the grand_total
grand_total="%.2f" % float(grand_total+item_total)
#Output the information for the grocery item to match this example:
#2 apple @ $1.49 ea $2.98
print (grocery_history[x]['number']+" "+grocery_history[x]['name']+" @ "+grocery_history[x]['price']+" ea $"+grand_total)
item_total=0
print (grand_total)
答案 0 :(得分:2)
你被运营商优先级抓住了。使用括号,或只是将格式移到print
语句。
item_total = value*value2 # format later
或
item_total="%.2f" % (value*value2)