Python 2.7:全局名称';日志';没有定义吗?
我有一个正常工作的脚本,但突然我开始收到以下错误:Python 2.7:全局名称';日志';没有定义吗?,python,python-2.7,Python,Python 2.7,我有一个正常工作的脚本,但突然我开始收到以下错误: File "/home/user/Documents/myscript.py", line 100, in getResults results = (log(output_list[1]) * 30) NameError: global name 'log' is not defined 脚本正常使用同一行,但现在不行。我一点也不知道这里发生了什么事?我猜您正在尝试使用math.log函数 您需要: import math ...
File "/home/user/Documents/myscript.py", line 100, in getResults
results = (log(output_list[1]) * 30)
NameError: global name 'log' is not defined
脚本正常使用同一行,但现在不行。我一点也不知道这里发生了什么事?我猜您正在尝试使用
math.log
函数
您需要:
import math
...
results = (math.log(some_string[1]) * 30)
或:
您一定缺少导入语句。请尝试在脚本顶部添加
导入数学
$ python
Python 2.7.3 (default, Jan 21 2013, 09:25:42)
Type "help", "copyright", "credits" or "license" for more information.
>>> import math
>>> math.log(10)
2.302585092994046
在代码开始时
从数学导入日志中
您应该显示myscript.py的整个代码。log
在哪里定义?@tasty:没有内置的。正如@alecxe所说,请发布整个脚本。您/某人可能在不知不觉中删除或修改了导入
语句。作为旁注,没有理由在整个表达式周围加括号,这会使您的代码更难阅读(是*30
而不是日志
,还是外部?),您的变量名似乎很容易引起误解。如果some\u string
实际上是一个字符串,那么some\u string[1]
就是一个单字符字符串,如果你把它传递给log
你只会得到一个类型错误<代码>从数学导入日志
将,就像导入数学
然后log=math.log
一样。非常正确。最好找到名称冲突,解决它,然后改为使用这种导入样式。
$ python
Python 2.7.3 (default, Jan 21 2013, 09:25:42)
Type "help", "copyright", "credits" or "license" for more information.
>>> import math
>>> math.log(10)
2.302585092994046