Ошибка типа: объект 'float' не вызывается - PullRequest
10 голосов
/ 03 августа 2011

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

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

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

Ответы [ 4 ]

26 голосов
/ 03 августа 2011

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

-3.7 need_something_here (prof[x])

«is not callable » возникает из-за того, что скобка - и отсутствие оператора, который бы превратил скобку в операторы старшинства - заставляет Python вызывать результат -3.7 (число с плавающей точкой) как функция, которая не допускается.

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

-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 --^
3 голосов
/ 03 августа 2011

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

2 голосов
/ 03 августа 2011

Вы забыли * между -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)))

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

2 голосов
/ 03 августа 2011

Все из-за '(-3,7 (проф [х])' - например, вы пропустили оператор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...