1、错误
错误一般是指语法错误(SyntaxError)。当Python解释器检测到不正确的语句时,就会发生语法错误:
>>> if for i in range(3)
File "
if for i in range(3)
^
SyntaxError: invalid syntax
if关键字和for关键字连在一起,是一定会有语法错误的。当发生错误(或异常)时,Python解释器会给出一些提醒,以便开发者发现错误的位置及错误类型。对于上例,分析如下:
①语法分析器会指出是哪个文件出了错误,这个示例中是"
②随后指出错误发生在第几行,这个示例中是line1,代表第一行。
③用“^”指出发生错误的具体位置,这个示例是由于if和for挨在一起。
④最后一行指出错误类型,这个示例中是SyntaxError,代表语法错误。
⑤最后指出错误的详细说明,这个示例中是invalid syntax。
语法错误是初学者比较容易犯的错误,常见的语法错误如下:
①在非字符串字面量中使用中文字符(全角字符)。Python语法的构成元素全部是英文字符(半角字符)。
②缩进错误,详见第三章。
③缺少必要的冒号。
④括号未配对,一般表现为只有左括号而缺少右括号。
⑤缺少必要的空格,汉字是一个挨着一个输入的,但是英文单词不可以,单词之间需要使用空格。
2、异常
即使代码在语法上是完全正确的,但是在执行时也可能会引发错误,书中出现的绝大部分代码演示中的错误均是如此:
>>> 3 / 0 # 除以零异常
Traceback (most recent call last):
File "
ZeroDivisionError: division by zero
>>> numbers = [1, 2, 3]
>>> numbers[3] # 列表索引异常
Traceback (most recent call last):
File "
IndexError: list index out of range
>>> fruits = ('apple', 'banana')
>>> fruits[2] # 元组索引异常
Traceback (most recent call last):
File "
IndexError: tuple index out of range
这种能通过语法检查,但在运行时检测到的错误称为异常(Exceptions)。当Python程序引发异常时,必须立即处理该异常,否则程序将终止并退出。异常消息的最后一行指出了异常类型和异常的详细说明。异常有不同的类型,并且该类型作为消息的一部分进行打印。上述示例中的异常类型分别为ZeroDivisionError、IndexError和IndexError。这两种异常都是Python中内建的,称为内建异常。
内建的异常有很多种类型,分别对应不同的异常情况。Python中常见的异常类型如表所示。