目录
前言
一、如何看报错信息
二、常见报错
1.SyntaxError: invalid syntax
2.SyntaxError : invalid character in identifier
3.TypeError: can only concatenate str (not “XXX”) to str
4.TypeError: f() takes exactly 2 arguments (1 given)
5.ValueError: could not convert string to float:‘12.2月'
6.ValueError: invalid literal for int() with base 10
7.ValueError: substring not found
8.ZeroDivisionError: division by zero
9.ModuleNotFoundError: No module named'pymysql '
10.NameError:name test' is not defined
11.IndentationError: expected an indented block
12.IndentationError: unexpected indent
13.IndentationError: unindent does not match any outer indentation level
14.IndexError: list index out of range
15.IndexError: string index out of range
总结
同学们学习python,经常运行的时候,会程序报错。这个很正常~没有一个程序员可以一直写出不报错的程序。
但是,是不是很多同学看不懂报错信息呢?
今天给大家罗列一些常见的报错信息,多看看记住就好。
首先,我们来学习下,报错信息应该怎么看~
首先,可以看下蓝字部分,会显示line x,这里是显示错误出现在第几行。
下面将那一行的程序显示出来,会把具体出错的位置标记出来。
最后系统会说明清楚错误的类型,错误的原因,方便我们进行改正
描述:无效的语法。这是我们经常会看见的一种错误类型。比如上面的例子就是语法错误的一种。
可能出现的原因:
1.在if、while、 for等语句后面忘记写冒号,或者冒号写作分号等其他符号。
解决:修改为英文半角的冒号
2.函数或方法的小括号写成了<>
解决:将其修改为英文半角的()
3.条件表达式中出现一个等号=。
解决:将其修改为比较运算符==
4.定义没有参数的函数时没有加小括号。
解决:添加小括号
描述:标识符中出现无效字符。
可能出现的原因:
1.函数或方法的小括号为中文状态下输入的。
解决:修改为英文半角状态下输入
2.字符串定界符使用了中文引号。
解决:修改为英文半角状态下输入
3.代码行内包括全角空格。
解决:去除或者修改为半角空格
描述:只能进行字符串与字符串的连接。
可能出现的原因:
将字符串与非字符串类型(如整型、浮点型、布尔型、序列对象等)的数据使用+进行连接。
解决:使用str()函数转换后再连接
描述:为函数提供的参数个数不够。
可能出现的情况:
定义两个参数,调用时只传递一个。
解决:将参数补充完整
描述:无法将字符串转换为浮点数。
可能出现的原因:
float()函数接受了非浮点数的字符串类型数据。
解决:修改为浮点数字符串
描述:传入无效的参数。
可能出现原因:
1.int()函数接受了非数字的字符串类型数据。
解决:将非数字的字符串修改为数字字符串
2.将浮点类型的字符串数字转换为整型。
解决:先转换为浮点型再转换为整型
描述:未找到子字符串。
可能出现的原因:
使用index()或者rindex()方法检索字符串时,指定的字符串不存在。
解决:在检索前先判断
描述: 0不能作为被除数。
可能出现的原因:
进行除法、取整除、求余运算时,0作为除数。
解决:修改为非0数字
描述:模块不存在
可能出现的原因:
1.模块名称拼写错误。
解决:修改正确
2.没有引入模块。
解决:使用import语句导入模块
3.没有下载第三方模块。
解决:使用pip安装所需模块
描述:某个局部或全局变量名称未找到。
可能出现的原因:
1.变量没有定义。
解决:定义变量
2.Python3版本不支持某些Python2中的函数或方法,如xrange()。
解决:修改为Python3中的函数或方法
描述:期望一个缩进块。
可能出现的原因:
1.定义函数或者类下的结构体时没有缩进。
解决:添加缩进
2.if或者for或者while语句下的结构体没有缩进。
解决:添加缩进
描述:缩进错误。
可能出现的原因:
代码前面出现除缩进以外的空格。
解决:删除多余的空格
描述:占位问题。
可能出现的原因:
1.同一级的代码块采用不同的缩进规则( 代码没对齐)。
解决:用键对齐
2.存在非法字符或其他格式的不可见的内容。
解决:去除非法字符
描述:列表下标越界
可能出现的原因:
1.获取元素时指定的索引值超过列表长度。
解决:修改索引值
2.列表为空,获取元素时会出错。
解决:判断不为空再获取
描述:字符串下标越界
可能出现的原因:
1.进行字符串截取时,指定的索引不存在。
解决:修改索引值
2.根据索引获取字符串中的某个字符时,指定的索引不存在。
解决:修改索引值或者先进行判断
掌握好了这些常见的错误之后,之后在写程序的时候,就会知道自己是哪里犯错啦,也就可以自己进行纠错,帮助自己提高写代码的能力!