22

每当我尝试使用 Python 的指数和对数模块的任何内置函数时,都会收到如下错误:

NameError: name 'sqrt' is not defined

我曾尝试使用math.sqrt(4),sqrt(4)sqrt(4.0),但它们都不起作用。例外是pow,它按预期工作。这真的很奇怪,我不确定出了什么问题。

4

7 回答 7

55

pow内置于语言中(不是数学库的一部分)。问题是你没有导入数学。

试试这个:

import math
math.sqrt(4)
于 2012-01-09T02:19:50.263 回答
18

您也可以导入为

from math import *

然后你可以使用任何数学函数而不用加上前缀 math。例如

sqrt(4)
于 2014-03-04T11:41:41.837 回答
5

添加:

import math

开始时。然后使用:

math.sqrt(num)  # or any other function you deem neccessary
于 2012-01-10T14:15:19.647 回答
2

你需要说什么math.sqrt时候使用它。或者,做from math import sqrt

嗯,我只是更彻底地阅读了您的问题....您如何导入math?我只是尝试过import math,然后math.sqrt效果很好。你在做类似的事情import math as m吗?如果是这样,那么您必须在函数前面加上m(或您在 之后使用的任何名称as)。

pow正在工作,因为有两个版本:一个始终可用的版本在 中__builtin__,另一个版本在math.

于 2012-01-09T02:19:24.933 回答
1
import math #imports math module

import math as m
print(m.sqrt(25))

from math import sqrt #imports a method from math module
print(sqrt(25))

from math import sqrt as s
print(s(25))

from math import *
print(sqrt(25))
于 2018-07-12T17:35:17.590 回答
0

从数学导入 sqrt

使用 sqrt(4) 效果很好。当您只使用“导入数学”时,您只需要使用 math.sqrt(4) 。

于 2017-07-03T06:29:25.213 回答
0
import math as m
a=int(input("Enter the no"))
print(m.sqrt(a))

from math import sqrt
print(sqrt(25))

from math import sqrt as s
print(s(25))

from math import *
print(sqrt(25))

所有作品。

于 2019-04-23T10:59:12.730 回答