#python #pythomnic3k
#python #pythomnic3k
Вопрос:
когда я запускаю эту функцию, я получаю эту ошибку, я не знаю, в чем проблема?
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)
Комментарии:
1. число (indexMax2)* число (indexMax1) должно быть с [], а не с ()
2. Предполагая, что number является списком, номер вызова (indexMax2) должен содержать квадратные скобки
Ответ №1:
Похоже, ошибка в последней строке
return number(indexMax2)*number(indexMax1)
Вы пытаетесь вызвать number(indexMax2) и number(indexMax1). Я думаю, что вы хотели сделать, это умножить элементы числа на индексы indexMax2 и indexMax1. Вам нужно изменить скобки на квадратные скобки:
return number[indexMax2]*number[indexMax1]
Пожалуйста, укажите типы входных переменных в ваших будущих вопросах.
Ответ №2:
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]
Ответ №3:
Как заявил Лиор Коэн в своем комментарии, это всего лишь вопрос круглых скобок вместо скобок. Правильный код:
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]