python_try/except/else/finally语句以及循环语句搭配else使用
try/except语句
try/except语句主要用来处理程序运行时遇到的一些异常情况(exception),例如除0(ZeroDivisionError)、类型错误(TypeError)、索引异常(IndexError)、键错误(KeyError)、导入模块错误(ImportError)等等
在try语句块中如果发现exception,那么中断接下来try块中的语句,进入exceptX
语句块,找到第一个匹配的异常处理块执行,否则进入最终的except
语句。由此可以,比较规范的try/except语句最底下无论如何应该有一个except语句,因为我们无法穷举所有exceptX的异常情况
我们也可以在except AError
后边加上as B
,来打印错误参数,详见下面的示例。
示例:
1 | try: |
try/except/finally语句
try/except/finally语句,无论有没有excetion都会执行finally语句块,finally语句一定要放在最底下,详见示例。
示例:
1 | try: |
在一些时候finally语句可以发挥很大的作用,例如在try语句块中成功打开文件之后,下面出现了异常,那么会直接跳出try语句块,这样文件可能无法关闭,有了finally语句,无论是否出现了异常,都可以正常关闭文件。
示例:
1 | try: |
try/except/else/finally语句
在C语言和C++中,else总是配合if使用,但是python中则可能搭配很多关键字使用。其中就包含try语句,也就是无exception时执行else语句。注意:如果要使用else的话,必须在expect和finally之间
示例:
1 | try: |
循环语句配合else使用
在python中,else还可以配合循环语句使用,如果循环能够执行完,那么不执行else语句,否则执行else语句
示例1:
1 | def judge(n): |
示例2:
1 | def judge(n): |