python新手常见的错误问题列举 - 及解决方案

错误列表

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
 

然后就是不要使用过长的变量,要使用易看清且容易理解的变量名称,这样才不容易搞混python新手常见的错误问题列举 - 及解决方案

2.SyntaxError: invalid syntax

python代码注重格式正确,所以一定要严格按照格式来书写

譬如下面的错误,在range(3)后面少了 :(冒号)

标准的书写方式是

for …… in ……:

       ……

python新手常见的错误问题列举 - 及解决方案

3.ModuleNotFoundError: No module named '……'

导入模块发生了错误,通常要检查import 后面的模块的名称是否正确

譬如下面的错误,模块名不对就会报错(正确的应该是 import turtle 而不是 trutle)

python新手常见的错误问题列举 - 及解决方案

4.TabError: inconsistent use of tabs and spaces in indentation

缩进错误不易察觉,但是却有很多人容易犯,譬如下图,命名格式正确,却报错

这是因为第三行实际上是 空空空空空TABprint(j)

                     而第四行是 空空空空空空空空空空print(i) 

如果存在一会儿打空格来满足缩进,一会打TAB来满足缩进很可能就会发生这样的错误

python新手常见的错误问题列举 - 及解决方案

5.SyntaxError: EOL while scanning string literal

语法错误中的字符串书写问题,看看自己的字符串有没有书写规范

譬如下面的错误   a = "1233'   字符串不能一边是双引号,一边是单引号

python新手常见的错误问题列举 - 及解决方案

6.ValueError: could not convert string to float:

不能将非数字的字符串转化为浮点数

譬如下面的错误(第7号错误基本也是这样的原因)

python新手常见的错误问题列举 - 及解决方案

9.AttributeError: module '……' has no attribute '……'

成员错误,在使用模块的时候调用了不属于该模块的函数

譬如下面的错误,应该调用的是turtle.pen() 而不是 pens()

python新手常见的错误问题列举 - 及解决方案

10.TypeError: …… missing n required positional argument: 

函数错少指定数量的参数,有些函数需要参数,如果你没有提供参数,程序就会报错

譬如下面的错误,goto()函数缺少所需的参数,至于是什么参数可以使用help()这个函数来查询

python新手常见的错误问题列举 - 及解决方案

11.IndexError: …… index out of range

索引错误,超出序列的范围

譬如下面的错误,新手常以为字符'7'的索引值是7,但实际上是6,因为每一个序列的第一个索引是0,以此类推'7'的索引值为6

python新手常见的错误问题列举 - 及解决方案

12.UnboundLocalError: local variable '……' referenced before assignment

在自己创建函数中可能发生的错误,通常是因为自己在设立变量前就调用了变量

譬如下面的错误

python新手常见的错误问题列举 - 及解决方案