我是python的新手,但下面的代码一直在返回:
unsupported operand type(s) for +=: 'int' and 'str'
代码:
shopping_list = ["banana", "orange", "apple"]
stock = {
"banana": 6,
"apple": 0,
"orange": 32,
"pear": 15
}
prices = {
"banana": 4,
"apple": 2,
"orange": 1.5,
"pear": 3
}
# Write your code below!
def compute_bill(food):
total = 0
for number in food:
total += number
return total
compute_bill(['apple'])
答案 0 :(得分:3)
您当前的代码正在尝试将食物的字符串名称添加到总数中。试试这个:
def compute_bill(food):
total = 0
for f in food:
number = prices.get(f, 0)
total += number
return total
.get()
将解决传递prices
词典中没有条目的食物的问题:例如,"apple"
没有价格,它只会将0
添加到总计中。这将使您的程序在以下情况下不会崩溃:commute_bill(['appple', 'grape'])
。也就是说,如果您尝试计算拼写错误的水果或不在prices
的水果的价格,它不会崩溃。但是,您的程序可能需要崩溃(或者至少在输入错误数据时引发错误并处理该错误) - 该部分由您决定。
答案 1 :(得分:2)
def compute_bill(food):
total = 0
for number in food:
total += prices[number] # You need to pull from the prices dictionary
return total
这并不能解决库存中没有"apples"
的问题。