TypeError: ‘float’-object kan niet worden aangeroepen

Ik probeer waarden uit een array te gebruiken in de volgende vergelijking:

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)))

Als ik ren krijg ik de volgende foutmelding:

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

dit is waarschijnlijk iets simpels, maar ik kom er niet helemaal uit. Alle hulp zou zijn
zeer gewaardeerd. Bij voorbaat dank


Antwoord 1, autoriteit 100%

Er ontbreekt een operator, waarschijnlijk een *:

-3.7 need_something_here (prof[x])

De “is niet aanroepbaar” komt voor omdat de haakjes — en het ontbreken van een operator die de haakjes in voorrangsoperatoren zou hebben veranderd — Python laten proberen om de aanroepde resultaat van -3.7(een float) als functie, wat niet is toegestaan.

De haakjes zijn in dit geval ook niet nodig, het volgende kan voldoende/juist zijn:

-3.7 * prof[x]

Zoals Legolas opmerkt, zijn er andere dingen die mogelijk moeten worden aangepakt:

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 --^

Antwoord 2, autoriteit 7%

Het probleem is met -3.7(prof[x]), dat eruitziet als een functieaanroep (let op de haakjes). Gebruik gewoon een *zoals deze -3.7*prof[x].


Antwoord 3, autoriteit 7%

Je bent een *vergeten tussen -3.7en (prof[x]).

Dus:

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)))

Ook lijkt er een (te ontbreken aangezien ik 6 keer (en 7 keer )tel, en ik denk (math.e, (0/2.25))mist een functieaanroep (waarschijnlijk math.pow, maar dat is maar een gok).

Other episodes