2017-06-29 107 views
-2

f(x)またはfp(x)はいずれも "NoneType"ではありませんが、 "absType"は動作できません。問題であると想定されるのは?TypeError:abs()の不良オペランドタイプ: 'NoneType' pythonエラー

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

画像を使用するのではなく、質問にコードをコピーします。助けようとする人々には敬意を表しますので、あなたの例を再入力する必要はありません。いずれにしても、実行できないコードの代わりに[mcve]を提供する必要があります。 'x'、' f'、 'fp'、' eps'はありません。 –

+0

いくつかのサンプル入力出力を提供します。 – void

+1

"f(x)またはfp(x)が" NoneType "でないことは本当に確信しています。" - プログラマーとして学ぶ必要がある最も重要な教訓の1つは、何かについて間違っている、あなたはおそらく間違っています。 – user2357112

答えて

0

だから私はfp(x)f(x)はないリターン何かを機能していることを、ここで想定しています。

これを見てみましょう、

def fp(x): 
    print(x) 

print(fp(10)) 

あなたはこれの出力は10だろうと思うかもしれないが、あなたがこれを取得、

10 
None 

この機能を見てみましょう、

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

出力:

None 

機能by デフォルト返品なしタイプ。したがって、あなたのケースでは、abs(fp(x))を実行しているときに、abs()Noneにしているというエラーが表示されます。この時

見て、

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

出力:

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

だから、関数にreturn文を追加し、エラーが

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

を消えてしまいます見ることができます出力:

10.5 

これでエラーはなくなりました。

関連する問題