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

时间:2013-05-30 03:12:30

标签: python jython

编写程序以跟踪您的利润。你每个苹果赚0.25美元,每个橙子0.50美元,每个香蕉0.75美元,每个草莓0.35美元。返回表示水果利润的整数。

这就是我所做的,我收到的错误是:不能将序列乘以'浮动'类型的非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

1 个答案:

答案 0 :(得分: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),并尝试将该序列 1 乘以.25。如果你试图索引一些列表,那就不会发生。

所以我在每组括号前添加了fruits。这样,您就会访问传递给0的{​​{1}}列表的1fruits等项目。

请注意我改变的内容:

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

1 - 将序列乘以整数会多次复制序列。例如,fruits会产生[0] * 4