NameError: name “ ” is not defined
问题一:name ‘name’ is not defined
"name"两端是双下划线"_",不是只有一个""。
问题二:name 'messagebox' is not defined
“ ” 内为某个数据库的子module。
在代码中加上如下语句:
from tkinter import messagebox
默认情况下子module不会自动import。
问题三:name 'reload' is not defined.
对于 Python 2.X
import sys
reload(sys)
sys.setdefaultencoding("utf-8")
对于 Python 3.3
import imp
imp.reload(sys)
注意:
-
Python 3 与 Python 2 有很大的区别,其中Python 3 系统默认使用的就是
utf-8
编码。 -
所以,对于使用的是Python 3 的情况,就不需要
sys.setdefaultencoding("utf-8")
这段代码。 -
最重要的是,Python 3 的 sys 库里面已经没有
setdefaultencoding()
函数了。对于 Python 3.4:
import importlib
importlib.reload(sys)
问题四:name 'file' is not defined
f = file('poem.txt', 'w') # open for 'w'riting
NameError: name 'file' is not defined
解决办法:file()改为open()
问题五:name 'array' is not defined
区分array和list,弄清楚道题想要啥类型;加载array模块。
from array import array
问题六: name 'xx' is not defined
IndentationError:expected an indented block
问题在于tab和空格混用导致出现了问题。
问题七:name 'math' is not defined
将
from math import *
改为
import math
问题八:python2中input出现的name“ ” is notdefined.
Python 2.X中对于input函数来说,它所希望读取到的是一个合法的Python表达式,即你在输入字符串的时候必须要用""将其扩起来;而在Python 3中,input默认接受的是str类型。
解决办法:1、在控制台进行输入参数时,将其变为一个合法的Python表达式,用" "将其扩起来
2、使用raw_input,因为raw_input将所有的输入看作字符串,并且返回一个字符串类型。