我在 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
内部,导致错误。换句话说:问题不在于函数,而在于你调用它的地方。
还有一个警告 - 你正在执行整数之间的除法,最好安全地使用它并确保至少有一个除法的操作数是小数,否则你可能会失去精度:
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))