python常见报错信息及解决方法

目录

前言

一、如何看报错信息

二、常见报错

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,经常运行的时候,会程序报错。这个很正常~没有一个程序员可以一直写出不报错的程序。

但是,是不是很多同学看不懂报错信息呢?

今天给大家罗列一些常见的报错信息,多看看记住就好。


一、如何看报错信息

首先,我们来学习下,报错信息应该怎么看~

python常见报错信息及解决方法_第1张图片

首先,可以看下蓝字部分,会显示line x,这里是显示错误出现在第几行。

下面将那一行的程序显示出来,会把具体出错的位置标记出来。

最后系统会说明清楚错误的类型,错误的原因,方便我们进行改正 

二、常见报错

1.SyntaxError: invalid syntax

描述:无效的语法。这是我们经常会看见的一种错误类型。比如上面的例子就是语法错误的一种。

可能出现的原因:

1.在if、while、 for等语句后面忘记写冒号,或者冒号写作分号等其他符号。

解决:修改为英文半角的冒号

2.函数或方法的小括号写成了<>

解决:将其修改为英文半角的()

3.条件表达式中出现一个等号=。

解决:将其修改为比较运算符==

4.定义没有参数的函数时没有加小括号。

解决:添加小括号

python常见报错信息及解决方法_第2张图片

2.SyntaxError : invalid character in identifier

描述:标识符中出现无效字符。

可能出现的原因:

1.函数或方法的小括号为中文状态下输入的。

解决:修改为英文半角状态下输入

2.字符串定界符使用了中文引号。

解决:修改为英文半角状态下输入

3.代码行内包括全角空格。

解决:去除或者修改为半角空格

python常见报错信息及解决方法_第3张图片

3.TypeError: can only concatenate str (not “XXX”) to str

描述:只能进行字符串与字符串的连接。

可能出现的原因: 

将字符串与非字符串类型(如整型、浮点型、布尔型、序列对象等)的数据使用+进行连接。

解决:使用str()函数转换后再连接

4.TypeError: f() takes exactly 2 arguments (1 given)

描述:为函数提供的参数个数不够。

可能出现的情况: 

定义两个参数,调用时只传递一个。

解决:将参数补充完整

python常见报错信息及解决方法_第4张图片

5.ValueError: could not convert string to float:‘12.2月'

描述:无法将字符串转换为浮点数。

可能出现的原因: 

float()函数接受了非浮点数的字符串类型数据。

解决:修改为浮点数字符串

6.ValueError: invalid literal for int() with base 10

描述:传入无效的参数。

可能出现原因:

1.int()函数接受了非数字的字符串类型数据。

解决:将非数字的字符串修改为数字字符串

2.将浮点类型的字符串数字转换为整型。

解决:先转换为浮点型再转换为整型

7.ValueError: substring not found

描述:未找到子字符串。

可能出现的原因: 

使用index()或者rindex()方法检索字符串时,指定的字符串不存在。

解决:在检索前先判断

python常见报错信息及解决方法_第5张图片

8.ZeroDivisionError: division by zero

描述: 0不能作为被除数。

可能出现的原因: 

进行除法、取整除、求余运算时,0作为除数。

解决:修改为非0数字

python常见报错信息及解决方法_第6张图片

9.ModuleNotFoundError: No module named'pymysql '

描述:模块不存在

可能出现的原因:

1.模块名称拼写错误。

解决:修改正确

2.没有引入模块。

解决:使用import语句导入模块

3.没有下载第三方模块。

解决:使用pip安装所需模块

10.NameError:name test' is not defined

描述:某个局部或全局变量名称未找到。

可能出现的原因:

1.变量没有定义。

解决:定义变量

2.Python3版本不支持某些Python2中的函数或方法,如xrange()。

解决:修改为Python3中的函数或方法

11.IndentationError: expected an indented block

描述:期望一个缩进块。

可能出现的原因:

1.定义函数或者类下的结构体时没有缩进。

解决:添加缩进

2.if或者for或者while语句下的结构体没有缩进。

解决:添加缩进

12.IndentationError: unexpected indent

描述:缩进错误。

可能出现的原因:

代码前面出现除缩进以外的空格。

解决:删除多余的空格

13.IndentationError: unindent does not match any outer indentation level

描述:占位问题。

可能出现的原因:

1.同一级的代码块采用不同的缩进规则( 代码没对齐)。

解决:用键对齐

2.存在非法字符或其他格式的不可见的内容。

解决:去除非法字符

python常见报错信息及解决方法_第7张图片

14.IndexError: list index out of range

描述:列表下标越界

可能出现的原因:

1.获取元素时指定的索引值超过列表长度。

解决:修改索引值

2.列表为空,获取元素时会出错。

解决:判断不为空再获取

15.IndexError: string index out of range

描述:字符串下标越界

可能出现的原因:

1.进行字符串截取时,指定的索引不存在。

解决:修改索引值

2.根据索引获取字符串中的某个字符时,指定的索引不存在。

解决:修改索引值或者先进行判断


总结

掌握好了这些常见的错误之后,之后在写程序的时候,就会知道自己是哪里犯错啦,也就可以自己进行纠错,帮助自己提高写代码的能力!

你可能感兴趣的:(Python干货,python,开发语言)