0

どれだけの利益を上げたかを追跡するプログラムを作成します。リンゴ 1 個あたり 0.25 ドル、オレンジ 1 個あたり 0.50 ドル、バナナ 1 個あたり 0.75 ドル、イチゴ 1 個あたり 0.35 ドルを稼いでいます。果物の利益を表す整数を返します。

これは私がやったことであり、次のエラーを受け取りました: 'float' 型の非 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
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] * .251 つの項目 (整数 0) を持つリストを作成し、そのシーケンス1を .25 で乗算しようとしています。リストのインデックスを作成しようとしても、それは行われませんでした。

だから私fruitsはブラケットの各セットの前に追加しました. このようにして、に渡されるリストの0th、1st などの項目にアクセスしています。fruitssellFruits

私が変更した内容の違いに注意してください。

  • [0]は、1 つの項目を含むリストを作成します0
  • fruits[0]リスト (または任意のシーケンス、タプルなど) の最初の項目にアクセスしますfruits

1 - シーケンスに整数を掛けると、シーケンスが何回も複製されます。[0] * 4、たとえば、利回り[0,0,0,0]

于 2013-05-30T03:17:14.010 に答える