编写程序以跟踪您的利润。你每个苹果赚0.25美元,每个橙子0.50美元,每个香蕉0.75美元,每个草莓0.35美元。返回表示水果利润的整数。
这就是我所做的,我收到的错误是:不能将序列乘以'int'类型的非int
def sellFruits(fruits):
fruitL = []
a = [0] * .25
o = [1] * .50
b = [2] * .75
s = [3] * .35
totalFruitProfit = a + o + b + s
return totalFruitProfit
测试用例:
fruits = [1, 1, 1, 1]
profit = sellFruits(fruits)
print profit
1.85
我想你要找的是:
def sellFruits(fruits):
a = fruits[0] * .25
o = fruits[1] * .50
b = fruits[2] * .75
s = fruits[3] * .35
totalFruitProfit = a + o + b + s
return totalFruitProfit
你做的几件事情并没有多大意义:
fruits
参数fruitL = []
,然后无所事事[0] * .25
正在创建一个列表,其中包含一个项目(整数0),并尝试将该sequence1乘以.25。如果你试图索引一些列表,那就不会发生。所以我在每组括号之前添加了fruits
。这样,您将访问传递给0
的1
列表的fruits
th,sellFruits
st等项目。
注意我改变的区别:
[0]
创建了一个列表,其中包含一个项目0
。fruits[0]
访问列表中的第一项(或任何序列,元组,...)fruits
。1 - 将序列乘以整数会多次复制序列。例如,[0] * 4
收益[0,0,0,0]
。
这样做的简短代码: 1。
def sellFruits(fruits):
totalFruitProfit = fruits[0]*0.25 + fruits[0]*0.50 + fruits[0]*0.75 + fruits[0]*0.35
return totalFruitProfit
fruits = [1, 1, 1, 1]
profit = sellFruits(fruits)
print (profit)
2.
fruits = [1, 1, 1, 1]
profits = [0.25, 0.50, 0.75, 0.35]
totalFruitProfit = 0
for i, j in zip(fruits, profits):
totalFruitProfit += i*j
print(totalFruitProfit)