不能在新定义的函数中使用导入的库


In [27]: import math
In [28]: math.log
Out[28]: <function math.log>
In [29]: sum(math.log(v) for v in range(10))
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
[...].py in <module>
----> 1 sum(math.log(v) for v in range(10))
[...].py in <genexpr>(.0)
----> 1 sum(math.log(v) for v in range(10))
NameError: name 'math' is not defined

我完全糊涂了。为什么这不起作用。

我无法重现您的错误,您能提供有关您的系统环境的更多信息吗?

问题不是来自那里,但您必须使用range(1, 10)而不是 10,因为 log 不是为 0 定义的。

这是我所拥有的。

Python 3.8.2 (default, Apr 27 2020, 15:53:34) 
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import math
>>> math.log
<built-in function log>
>>> sum(math.log(v) for v in range(1, 10))
12.80182748008147

最新更新