问题描述
我收到此错误,但我不太确定为什么要考虑我在那里有导入数学行。
NameError: name 'sqrt' is not defined
import math
x = float(input())
y = float(input())
z = float(input())
print('{:.2f} {:.2f} {:.2f} {:.2f}'.format(pow(x,z),pow(x,pow(y,z)),abs(x - y),sqrt(pow(x,z))))
编辑:我可以通过使用 math.sqrt
解决问题,但我不确定为什么在 pow 和 abs 函数工作时需要它。
解决方法
您必须从 sqrt
导入 math
。如果不导入 sqrt
,您将无法使用它。
你可以试试这个:
from math import sqrt
或者你也可以这样做:
math.sqrt
pow()
和 abs()
是 Python 中的预定义函数,但 sqrt
不是 Python 中的预定义函数。或者,您可以使用 pow(N,1/2)
,因为它等效于 sqrt(N)
您当前正在导入整个数学库,而实际上并未使用 sqrt 函数。你可以像这样解决这个问题:
import math
x = float(input())
y = float(input())
z = float(input())
print('{:.2f} {:.2f} {:.2f} {:.2f}'.format(pow(x,z),pow(x,pow(y,z)),abs(x - y),math.sqrt(pow(x,z))))