TypeError: объект "float" не может быть вызван

Я пытаюсь использовать значения из массива в следующем уравнении:

for x in range(len(prof)):
    PB = 2.25 * (1 - math.pow(math.e, (-3.7(prof[x])/2.25))) * (math.e, (0/2.25)))

При запуске я получаю следующую ошибку:

Traceback (most recent call last):
  File "C:/Users/cwpapine/Desktop/1mPro_Chlavg", line 240, in <module>
    PB = float(2.25 * (1 - math.pow(math.e, (-3.7(prof[x])/2.25))) * (math.e, (0/2.25)))
TypeError: 'float' object is not callable

это, вероятно, что-то простое, но я не могу это понять. Любая помощь будет очень оценили. Спасибо заранее

Ответ 1

Отсутствует оператор, вероятно, *:

-3.7 need_something_here (prof[x])

"Не вызывается" возникает из-за того, что скобка - и отсутствие оператора, который бы переключил скобку в операторы приоритета - заставляет Python попытаться вызвать результат -3.7 (float) как функцию, которая не допускается.

В этом случае скобки также не нужны, может быть достаточно/правильно следующее:

-3.7 * prof[x]

Как указывает Леголас, есть и другие вещи, которые, возможно, необходимо решить:

2.25 * (1 - math.pow(math.e, (-3.7(prof[x])/2.25))) * (math.e, (0/2.25)))
                                  ^-- op missing
                                                    extra parenthesis --^
               valid but questionable float*tuple --^
                                     expression yields 0.0 always --^

Ответ 2

Проблема заключается в -3.7(prof[x]), который выглядит как вызов функции (обратите внимание на parens). Просто используйте *, как этот -3.7*prof[x].

Ответ 3

Все из-за '(-3.7 (prof [x])' - например, вы упустили оператора.

Ответ 4

Вы забыли * между -3.7 и (prof[x]).

Таким образом:

for x in range(len(prof)):
    PB = 2.25 * (1 - math.pow(math.e, (-3.7 * (prof[x])/2.25))) * (math.e, (0/2.25)))

Кроме того, кажется, что отсутствует (, поскольку я считаю 6 раз ( и 7 раз ), и я думаю, что (math.e, (0/2.25)) отсутствует вызов функции (возможно, math.pow), но это просто дикая догадка).

Ответ 5

Я получил эту ошибку, когда пытался вызвать метод, когда свойство с тем же именем было доступно.

float = 4.99
float("1")