2013-05-30 3 views
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 
+0

Что 'fruitL' делать? – SimonT

+0

Я думал, что должен был создать список для индекса от – user2434517

ответ

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), и пытается умножить эта последовательность по .25. Если вы пытались проиндексировать какой-то список, этого не происходит.

Итак, я добавил fruits перед каждым набором кронштейнов. Таким образом, вы получаете доступ к адресу 0 th, 1 и т. Д. Из списка fruits, передаваемого в sellFruits.

Обратите внимание на различие в том, что я изменил:

  • [0] создает список, с одним элементом, 0.
  • fruits[0] Доступ к первому элементу в списке (или любой последовательности, кортеж, ...) fruits.

1 - Умножение последовательности на целое число дублирует последовательность, которая во много раз. [0] * 4, например, дает [0,0,0,0].

+0

Спасибо за объяснение! Было действительно полезно – user2434517

+0

Также обратите внимание, что '[0] * 4', например, дает' [0,0,0,0] '. – SimonT

+0

@Tangmeister Спасибо. Я не стал упоминать об этом, потому что ОП, очевидно, был достаточно сбит с толку. Но поскольку я упомянул «умножить эту последовательность», я решил, что, вероятно, должен объяснить это. Ред. –

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) 
Смежные вопросы