0

编写一个程序来记录你赚了多少利润。每个苹果赚 0.25 美元,每个橙子赚 0.50 美元,每个香蕉赚 0.75 美元,每个草莓赚 0.35 美元。返回一个整数,表示水果的利润。

这就是我所做的,我收到的错误是:不能将序列乘以“浮点”类型的非整数

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
4

2 回答 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)的列表,并尝试将该序列1乘以 0.25。如果你试图索引一些列表,它就没有发生。

所以我fruits在每组括号之前添加了。这样,您正在访问传递给的列表的0第 th、1st 等项。fruitssellFruits

注意我改变的不同:

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

1 - 将一个序列乘以一个整数会多次重复该序列。[0] * 4,例如,产量[0,0,0,0]

于 2013-05-30T03:17:14.010 回答
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)
于 2018-03-04T10:41:22.613 回答