做为Python初学者,在刚学习Python编程时,常常会看到一些报错信息,在前面咱们没有说起,这章节咱们会专门介绍。python
Python有两种错误很容易辨认:语法错误和异常编程
Python 的语法错误或者称之为解析错,是初学者常常碰到的,以下实例函数
lcassmates = ['Maichesal','asdas','Treas']
异常错误以下 Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'lcassmatas' is not defined
正确写法 >>> lcassmates = ['Maichesal','asdas','Treas']; >>> lcassmates ['Maichesal', 'asdas', 'Treas']
这个例子中,函数 lcassmates 被检查到有错误,是它句尾缺乏了一个结束分号(;)。学习
即使Python程序的语法是正确的,在运行它的时候,也有可能发生错误。运行期检测到的错误被称为异常。spa
大多数的异常都不会被程序处理,都以错误信息的形式展示在这里:操作系统
>>> 10 * (1/0) Traceback (most recent call last): File "<stdin>", line 1, in ? ZeroDivisionError: division by zero >>> 4 + spam*3 Traceback (most recent call last): File "<stdin>", line 1, in ? NameError: name 'spam' is not defined >>> '2' + 2 Traceback (most recent call last): File "<stdin>", line 1, in ? TypeError: Can't convert 'int' object to str implicitly
异常以不一样的类型出现,这些类型都做为信息的一部分打印出来: 例子中的类型有 ZeroDivisionError,NameError 和 TypeError。code
如下例子中,让用户输入一个合法的整数,可是容许用户中断这个程序(使用 Control-C 或者操做系统提供的方法)。用户中断的信息会引起一个 KeyboardInterrupt 异常。ci
错误信息的前面部分显示了异常发生的上下文,并以调用栈的形式显示具体信息。input
>> while True: try: x = int(input("Please enter a number: ")) break except ValueError: print("Oops! That was no valid number. Try again ")
try语句按照以下方式工做;it