0

当我运行这个函数时,我得到这个错误,我不知道问题出在哪里?

def max_product(number):
    n = len(number)
    indexMax1 = 0
    indexMax2 = 0
    for f in range(n):
        if f > number[indexMax1]:
            indexMax1 = number.index(f)
    for s in range(n):
        if(s > number[indexMax2] and indexMax2 != indexMax1):
            indexMax2 = number.index(s)
    return number(indexMax2)*number(indexMax1)
4

3 回答 3

2

似乎错误在最后一行

return number(indexMax2)*number(indexMax1)

您正在尝试调用 number(indexMax2) 和 number(indexMax1)。我认为您想要做的是将数字元素与索引 indexMax2 和 indexMax1 相乘。您需要将括号更改为方括号:

return number[indexMax2]*number[indexMax1]

请在您以后的问题中指定输入变量的类型。

于 2020-12-18T15:56:55.393 回答
0
def max_product(number):
    n = len(number)
    indexMax1 = 0
    indexMax2 = 0
    for f in range(n):
        if f > number[indexMax1]:
            indexMax1 = number.index(f)
    for s in range(n):
        if(s > number[indexMax2] and indexMax2 != indexMax1):
            indexMax2 = number.index(s)
    return number[indexMax2]*number[indexMax1]
于 2020-12-18T15:58:36.540 回答
0

正如 Lior Cohen 在他的评论中所说,这只是括号而不是括号的问题。正确的代码是:

def max_product(number):
    n = len(number)
    indexMax1 = 0
    indexMax2 = 0
    for f in range(n):
        if f > number[indexMax1]:
            indexMax1 = number.index(f)
    for s in range(n):
        if(s > number[indexMax2] and indexMax2 != indexMax1):
            indexMax2 = number.index(s)
    return number[indexMax2]*number[indexMax1]
于 2020-12-18T16:02:09.607 回答