类型错误:abs()的操作数类型错误:';非类型';python错误
f(x)或fp(x)都不是“非类型”,但是 它告诉我abs不能“非类型”操作。有什么问题吗类型错误:abs()的操作数类型错误:';非类型';python错误,python,Python,f(x)或fp(x)都不是“非类型”,但是 它告诉我abs不能“非类型”操作。有什么问题吗 abs(fp(x)) TypeError: bad operand type for abs(): 'NoneType' 所以我在这里假设,fp(x)或f(x)是不返回任何东西的函数 看看这个, def fp(x): print(x) print(fp(10)) 你可能会认为这个的输出是10,但是你得到了这个 10 None 看看这个函数 def fp(): pass print(
abs(fp(x))
TypeError: bad operand type for abs(): 'NoneType'
所以我在这里假设,
fp(x)
或f(x)
是不返回任何东西的函数
看看这个,
def fp(x):
print(x)
print(fp(10))
你可能会认为这个的输出是10
,但是你得到了这个
10
None
看看这个函数
def fp():
pass
print(fp())
输出:
None
TypeError: bad operand type for abs(): 'NoneType' python error
10.5
默认函数返回一个None类型。因此,在您执行abs(fp(x))
时,问题似乎是您在None
上执行abs()
,这就是出现错误的原因
看看这个,
def fp():
pass
abs(fp())
输出:
None
TypeError: bad operand type for abs(): 'NoneType' python error
10.5
因此,在函数中添加一个return语句,您可以看到错误将消失
def fp(x):
return x
some_value = abs(fp(-10.5))
print(some_value)
输出:
None
TypeError: bad operand type for abs(): 'NoneType' python error
10.5
现在错误消失了。将代码复制到问题中,而不是使用图像。这是对那些试图帮助你的人的尊重,所以他们不必重新输入你的例子。在任何情况下,您都应该提供一段代码,而不是一段我们无法运行的代码。我们没有
x
、f
、fp
或eps
。提供一些示例输入输出。“我真的很确定f(x)或fp(x)不是“非类型”—作为程序员,你需要学习的最重要的一课是,如果错误消息说你有错误,您可能错了。函数fp()
显然返回了值None
。这是python函数的默认返回值,除非显式返回其他值,例如:def fp(x):return x*2
。如果需要调试帮助,必须包含fp
的源代码。