2017-06-29 6 views
-2

Sowohl f (x) oder fp (x) sind nicht "NoneType" aber es sagt mir, dass abs "NoneType" nicht funktionieren kann. Was scheint das Problem zu sein?TypeError: bad Operand Typ für abs(): 'NoneType' Python Fehler

abs(fp(x)) 
TypeError: bad operand type for abs(): 'NoneType' 
+5

Kopieren Sie den Code in die Frage, anstatt Bilder zu verwenden. Es ist respektvoll gegenüber den Menschen, die versuchen zu helfen, damit sie ihr Beispiel nicht erneut eingeben müssen. In jedem Fall sollten Sie anstelle eines Teils des Codes, den wir nicht ausführen können, einen [mcve] bereitstellen. Wir haben nicht 'x',' f', 'fp' oder' eps'. –

+0

Geben Sie eine Beispieleingabe ein. – void

+1

"Ich bin mir wirklich sicher, dass f (x) oder fp (x) nicht" NoneType "" sind - eine der wichtigsten Lektionen, die Sie als Programmierer lernen müssen, ist, dass wenn die Fehlermeldung Sie sagt falsch über etwas, du liegst wahrscheinlich falsch. – user2357112

Antwort

0

Also vorausgesetzt, ich bin hier, dass fp(x) oder f(x) Funktionen, die nichts Rückkehr tun.

auf dieses Werfen Sie einen Blick,

def fp(x): 
    print(x) 

print(fp(10)) 

Man könnte denken, dass der Ausgang dieses 10 sein würde, aber Sie dieses nicht erhalten,

10 
None 

in dieser Funktion Werfen Sie einen Blick,

def fp(): 
    pass 
print(fp()) 

Ausgabe:

Funktionen von default geben Sie eine keine Art. Also in Ihrem Fall, wenn Sie abs(fp(x)) tun, scheint das Problem zu sein, dass Sie abs() auf None tun, deshalb erhalten Sie den Fehler.

Schauen Sie sich diese,

def fp(): 
     pass 
abs(fp()) 

Ausgang:

TypeError: bad operand type for abs(): 'NoneType' python error 

So eine return-Anweisung an die Funktion hinzufügen und der Fehler wird

weg sehen
def fp(x): 
    return x 
some_value = abs(fp(-10.5)) 
print(some_value) 

Ausgang:

10.5 

Jetzt ist der Fehler weg.

Verwandte Themen