列表中非整数和整数的乘法

问题描述 投票:0回答:2

编写程序以跟踪您的利润。你每个苹果赚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
python jython
2个回答
2
投票

我想你要找的是:

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。这样,您将访问传递给01列表的fruitsth,sellFruitsst等项目。

注意我改变的区别:

  • [0]创建了一个列表,其中包含一个项目0
  • fruits[0]访问列表中的第一项(或任何序列,元组,...)fruits

1 - 将序列乘以整数会多次复制序列。例如,[0] * 4收益[0,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)
© www.soinside.com 2019 - 2024. All rights reserved.