第一个练手小项目遇到N个NameError,技能熟练度蹭蹭往上涨,哈哈…
转发一个网上的比较全的解决贴,共勉。
原址:/zyh19980816/p/
问题一:name ‘name’ is not defined
“name"两端是双下划线”_",不是只有一个""。
问题二:name ‘messagebox’ is not defined
“ ” 内为某个数据库的子module。
在代码中加上如下语句:
from tkinter import messagebox
默认情况下子module不会自动import。
问题三:name ‘reload’ is not defined.
对于 Python
import sys
reload(sys)
(“utf-8”)
对于 Python 3.3
import imp
(sys)
注意:
Python 3 与 Python 2 有很大的区别,其中Python 3 系统默认使用的就是utf-8编码。
所以,对于使用的是Python 3 的情况,就不需要(“utf-8”)这段代码。
最重要的是,Python 3 的 sys 库里面已经没有 setdefaultencoding() 函数了。
对于 Python 3.4:
import importlib
(sys)
问题四:name ‘file’ is not defined
f = file(‘’, ‘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 中对于input函数来说,它所希望读取到的是一个合法的Python表达式,即你在输入字符串的时候必须要用""将其扩起来;而在Python 3中,input默认接受的是str类型。
解决办法:1、在控制台进行输入参数时,将其变为一个合法的Python表达式,用" "将其扩起来
2、使用raw_input,因为raw_input将所有的输入看作字符串,并且返回一个字符串类型。