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.7
en (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).