1

私はPython 2.7でこのコードを使用して、次の方法で新しい番号を生成していました。

def Alg(n):
    n=((n**2)-1)/4
    return n    

エラーメッセージが表示されます:

TypeError: unsupported operand type(s) for ** or pow(): 'NoneType' and 'int'

どんな助けでも素晴らしいでしょう!ありがとう!

4

2 に答える 2

4

どういうわけか、Noneこの関数を呼び出すと、次のようになります。

Alg(None)

...n関数None内にあるため、エラーが発生します。言い換えれば、問題は関数にあるのではなく、関数を呼び出しているところにあります。

また、警告の言葉-整数間の除算を実行しています。安全にプレイし、除算のオペランドの少なくとも1つが小数であることを確認してください。そうしないと、精度が失われる可能性があります。

def Alg(n):               # there's no need to reassign n
    return ((n**2)-1)/4.0 # notice the .0 part at the end
于 2013-09-24T16:23:02.350 に答える
0

あなたのコードは私にとっては問題なく動作しますが、代わりにモジュールpowから使用できmathます。

import math as m
def Alg(n):
    n=(m.pow(n,2) -1)/4
    return n 
print(Alg(3))
于 2020-04-29T23:36:16.953 に答える