can ' умножить последовательность на не-int типа ' float '

level: beginner

почему я получаю ошибку "не может умножить последовательность на не-int типа 'float «"?

def nestEgVariable(salary, save, growthRates):
    SavingsRecord = []
    fund = 0
    depositPerYear = salary * save * 0.01
    for i in growthRates:  
        fund = fund * (1 + 0.01 * growthRates) + depositPerYear
        SavingsRecord += [fund,]
    return SavingsRecord 


print nestEgVariable(10000,10,[3,4,5,0,3])

спасибо Баба

33
задан mskfisher 21 June 2012 в 16:06
поделиться

3 ответа

for i in growthRates:  
    fund = fund * (1 + 0.01 * growthRates) + depositPerYear

должно быть:

for i in growthRates:  
    fund = fund * (1 + 0.01 * i) + depositPerYear

Вы умножаете 0,01 на объект списка GrowthRates. Умножение списка на целое допустимо (это перегруженный синтаксический сахар, позволяющий создать расширенный список с копиями ссылок на его элементы).

Пример:

>>> 2 * [1,2]
[1, 2, 1, 2]
19
ответ дан 27 November 2019 в 18:37
поделиться

Вы умножаете "1 + 0,01" на список GrowthRate, а не на элемент в списке, который вы перебираете. Я переименовал i в rate и использовал его вместо этого. См. обновленный код ниже:

def nestEgVariable(salary, save, growthRates):
    SavingsRecord = []
    fund = 0
    depositPerYear = salary * save * 0.01
    #    V-- rate is a clearer name than i here, since you're iterating through the rates contained in the growthRates list
    for rate in growthRates:  
        #                           V-- Use the `rate` item in the growthRate list you're iterating through rather than multiplying by the `growthRate` list itself.
        fund = fund * (1 + 0.01 * rate) + depositPerYear
        SavingsRecord += [fund,]
    return SavingsRecord 


print nestEgVariable(10000,10,[3,4,5,0,3])
3
ответ дан 27 November 2019 в 18:37
поделиться

Потому что GrowthRates — это последовательность (вы даже повторяете ее!), и вы умножаете ее на (1 + 0,01), что, очевидно, является числом с плавающей запятой (1,01). Я предполагаю, что вы имеете в виду для скорости роста в скорости роста: ... * скорость роста?

0
ответ дан 27 November 2019 в 18:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: