错误列表
NameError: name '……' is not defined | 变量错误, …… 变量没有被定义 |
SyntaxError: invalid syntax | 语法错误,代码书写规范问题 |
ModuleNotFoundError: No module named '……' | 模块导入错误,没有这个名称的模块 |
TabError: inconsistent use of tabs and spaces in indentation | 缩进错误,建议重写发生错误的代码 |
SyntaxError: EOL while scanning string literal | 语法错误,字符串书写规范问题 |
ValueError: could not convert string to float: | 值错误,不能将非数字的字符串转化为浮点数 |
ValueError: invalid literal for int() with base 10: | 值错误,不能将非数字的字符串转化为整数 |
SyntaxError: Missing parentheses in call to 'print' | 语法错误:调用“print”时缺少括号,python3.x都是print(),若有书上显示print ……那是老版本python2.x |
AttributeError: module '……' has no attribute '……' | 属性错误: 模块……中没有属性(函数or成员) …… |
TypeError: …… missing n required positional argument: | 类型错误: 函数……缺少n个所需参数 |
IndexError: …… index out of range | 索引错误: 超出序列索引范围 |
ZeroDivisionError: division by zero | 除以0的错误,数学错误 |
UnboundLocalError: local variable '……' referenced before assignment | 引用变量错误,变量在赋值前被引用,常在函数中出现 |
逐一详解
1.NameError: name '……' is not defined
通常是编写者在引用变量的时候存在细微的误差,导致之前赋值的变量名称与引用的变量名称不一致所导致
譬如下面所示,一开始设定了dil1 = 23,却调用dil,因为在编辑器中1和l颇有神似,所以建议在使用1的时候建议dil_1
然后就是不要使用过长的变量,要使用易看清且容易理解的变量名称,这样才不容易搞混
2.SyntaxError: invalid syntax
python代码注重格式正确,所以一定要严格按照格式来书写
譬如下面的错误,在range(3)后面少了 :(冒号)
标准的书写方式是
for …… in ……:
……
3.ModuleNotFoundError: No module named '……'
导入模块发生了错误,通常要检查import 后面的模块的名称是否正确
譬如下面的错误,模块名不对就会报错(正确的应该是 import turtle 而不是 trutle)
4.TabError: inconsistent use of tabs and spaces in indentation
缩进错误不易察觉,但是却有很多人容易犯,譬如下图,命名格式正确,却报错
这是因为第三行实际上是 空空空空TABprint(j)
而第四行是 空空空空空空空空print(i)
如果存在一会儿打空格来满足缩进,一会打TAB来满足缩进很可能就会发生这样的错误
5.SyntaxError: EOL while scanning string literal
语法错误中的字符串书写问题,看看自己的字符串有没有书写规范
譬如下面的错误 a = "1233' 字符串不能一边是双引号,一边是单引号
6.ValueError: could not convert string to float:
不能将非数字的字符串转化为浮点数
譬如下面的错误(第7号错误基本也是这样的原因)
9.AttributeError: module '……' has no attribute '……'
成员错误,在使用模块的时候调用了不属于该模块的函数
譬如下面的错误,应该调用的是turtle.pen() 而不是 pens()
10.TypeError: …… missing n required positional argument:
函数错少指定数量的参数,有些函数需要参数,如果你没有提供参数,程序就会报错
譬如下面的错误,goto()函数缺少所需的参数,至于是什么参数可以使用help()这个函数来查询
11.IndexError: …… index out of range
索引错误,超出序列的范围
譬如下面的错误,新手常以为字符'7'的索引值是7,但实际上是6,因为每一个序列的第一个索引是0,以此类推'7'的索引值为6
12.UnboundLocalError: local variable '……' referenced before assignment
在自己创建函数中可能发生的错误,通常是因为自己在设立变量前就调用了变量
譬如下面的错误