私はPython 2.7でこのコードを使用して、次の方法で新しい番号を生成していました。
def Alg(n):
n=((n**2)-1)/4
return n
エラーメッセージが表示されます:
TypeError: unsupported operand type(s) for ** or pow(): 'NoneType' and 'int'
どんな助けでも素晴らしいでしょう!ありがとう!
私はPython 2.7でこのコードを使用して、次の方法で新しい番号を生成していました。
def Alg(n):
n=((n**2)-1)/4
return n
エラーメッセージが表示されます:
TypeError: unsupported operand type(s) for ** or pow(): 'NoneType' and 'int'
どんな助けでも素晴らしいでしょう!ありがとう!
どういうわけか、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
あなたのコードは私にとっては問題なく動作しますが、代わりにモジュールpow
から使用できmath
ます。
import math as m
def Alg(n):
n=(m.pow(n,2) -1)/4
return n
print(Alg(3))