Python自动化办公_debug

本文详细介绍了Python编程中的语法错误和异常,包括IndentationError、TypeError、IndexError、ModuleNotFoundError、AttributeError、FileNotFoundError和UnicodeDecodeError,并提供了错误自检清单和解决方法。
摘要由CSDN通过智能技术生成

常见的语法错误

按照Python官方文档的定义,“错误消息”至少可以被分为两类:语法错误(syntax errors)异常(exceptions)

语法错误(syntax errors)简单来说就是代码不符合Python的基本语法规范而导致程序出了问题。

当你的代码完全符合Python的语法规范后,就该尝试运行程序了。但在程序运行过程中,还是有可能会发生问题,我们把这类问题称为异常(exceptions)

一、语法错误

例:

查看错误消息时,终端会展示出现语法错误的那一行,并显示一个箭头^,指向这行里面检测到的第一个错误(这里的错误为第一行print附件)

需要说明的是:行数会告诉你代码是在哪里出现的问题,但这不一定就是最开始出错的地方。有时,真正的错误会出现在信息指明的位置之前,通常就在前一行。

两种常见的语法错误:SyntaxErrorIndentationError

1、SyntaxError:

 Syntax Error(语法错误)

第一种:SyntaxError: invalid syntax(无效语法)

              通常原因:(1)遗漏了标点符号:你需要检查标点符号是否有遗漏,像是在函数定义的时候,括号后面是否有冒号;if条件判断和while循环中的条件后面是否                                                                                有冒号;for循环的可迭代对象后是否有冒号;还有就是字典中每一个键值对之间是否有逗号等等。还有就是你可能将==写成                                                                              了 =,没有将等于和赋值区分开

                                (2)关键字拼写错误或遗漏:有可能是因为你手抖或者粗心,将while写成了whlie,将def写成了dfe之类的错误,或者可能是你将for...in...中的关键                                            字in忘写了

                                (3)变量名或函数名使用了关键字:下图中的单词不可作为关键字

                                         大部分的开发环境都会用不同颜色来显示关键字,所以不需要熟记这些关键字,有印象即可

第二种:SyntaxError: invalid character in identifier(标识符中有无效字符)

               简而言之,就是中英文符号混用了

第三种:SyntaxError: EOL while scanning string literal(检查到不完整的字符串)

              这种情况通常是因为遗漏了字符串两边的引号,或者混用了引号(即字符串两边的引号不统一)。

总结:

 2、IndentationError(缩进错误)

       如下图:

语法错误自检清单:

二、异常

区分异常和错误:一般情况下,异常的“错误消息”会显示Traceback (most recent call back),而语法错误就不会显示。

 1、TypeError(类型错误)

第一种:TypeError: unsupported operand type(s) for …(不支持的运算)

              需使用float()或int()将数据类型转换。例:

第二种:TypeError: can only concatenate str (not "int") to str (只能用字符串拼接字符串)

              用str()来进行数据转换。例:

第三种:TypeError: 'xxx' object is not iterable(对象不可被迭代)

               for循环只能循环遍历可迭代对象。

               常用的可迭代对象应该包括:字符串类型,列表,元组和字典。剩下的一些类型,比如:int类型,float类型,布尔类型和None就不是可迭代对象。

总结:

2、IndexError

出现频率较高的索引错误IndexError: list index out of range(索引超出了范围)

通常出现于列表的使用中:如列表的索引最大值是4,但代码里却写了5,程序运行后就会出错。

tips:

列表的索引方向有两种:

从左往右:索引的最小值为0.最大值为列表长度-1

从右往左:索引的最小值为-列表长度,最大值为-1

3、ModuleNotFoundError(未找到模块)

        错误原因:模块名称拼写错误

4、AttributeError(属性错误)

        模块内没有相应的属性。可能是拼写或记忆错误。

5、FileNotFoundError(路径错误)

        检查文件或文件夹名是否正确。

6、UnicodeDecodeError(解码错误)

        解决方法:第一种,先利用vscode等软件去查看文件的编码格式,然后再将文件的编码格式修改为你在代码中写的编码格式即可。

                          第二种,还是先在vscode里面查看文件的编码格式,然后将代码中的encoding参数改为该文件的编码格式即可。

7、总结:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值