1.了解异常
什么是异常呢?
当检测到一个错误时,python解释器就无法继续执行了,反而出现了一些错误的提示,这就是所谓的“异常”,也就是我们常说的bug
像这样,计算机会告诉你出错的是哪一行代码以及出现错误的问题所在
FileNotFoundError: 文件未找到
No such file or directory: 文件或目录不存在
2.异常的捕获方法
为什么要捕获异常?
世界上没有完美的程序,任何程序在运行的过程中,都有可能出现:异常,也就是出现bug导致程序无法完美的运行下去。我们要做的,不是力求程序完美运行,而是在力所能及的范围内,对可能出现的bug。进行提前准备、提前处理。这种行为我们称之为:异常处理(捕获异常)
捕获常规异常
当我们使用r模式时如果出现异常,可以捕获出现的异常,然后进行处理,以w模式去给他打开,文件不存在就会被创建出来
就是说,try里面出现异常,就直接执行except里面的代码
捕获指定异常
给大家分享以下四张截图,来分析捕获指定异常的意义
我们只捕获这个叫NameError的,捕获的类型不一样,就会导致捕获的异常没有被你处理掉,直接就输出了
a就是我们一开始看到的那个异常信息,我们通过as给异常起一个变量名字,然后打印出来
捕获多个异常
捕获全部异常
Exception其实就是顶级的异常,其他的异常都是它的小弟,所有的异常都是基于Exception这个异常所构建出来的
else
finally
try:
可能要发生异常的语句
except 异常 as 别名:
出现异常的准备手段
else:
未出现异常时应做的事情
finally:
不管出不出现异常都会做的事情
异常的种类多种多样,如果想要不管什么类型的异常都能捕获到,那么使用:
·except:
`except Exception:
一般使用第二个方法
3.异常的传递
异常的传递解析
不需要去底层捕获异常,可以等他传递到高层在去捕获它
#定义一个出现异常的方法 def func1(): print("func1 开始执行") num = 1/0 #肯定有异常,除以0的异常 print("func1 结束执行") #定义一个无异常的方法,调用上面的方法 def func2(): print("func2 开始执行") func1() print("func2 结束执行") #定义一个方法,调用上面的方法 def main(): try: func2() except Exception as e: print(f"出现异常了,异常的信息是:{e}") main()
4.python模块
模块的导入
模块就是一个python代码文件,内含类、函数、变量等,我们可以导入进行使用
加入中括号,中括号在语法中的意思是可以不写,from可以不写,as 别名也可以不写
* 是全部内容的意思
当我们导入了模块名之后,就可以使用模块内部所定义的函数等等
如果我们想要查看time这个模块,可以点击ctrl+鼠标点击time
并且可以使用ctrl+f搜索想要的
通过.就可以使用模块内部的全部功能(类、函数、变量)
相当于我们只使用了time模块里面的sleep
其实就是给具体的模块或者说具体的功能完成改名的操作
注意事项:
·from可以省略,直接import即可
·as别名可以省略
·通过"."来确定层级关系
·模块的导入一般写在代码文件的开头位置
自定义模块
就是我们可以自己写一个文件,需要使用它时,直接import 导入它就可以了
模块名称其实就是文件名字,所以自定义模块名必须要符合标识符命名规则
当导入多个模块的时候,且模块内有同名功能,当调用这个同名功能的时候,调用到的是后面导入的模块的功能
当你调用这个模块时,它会自动执行这个模块里面的代码
if __name__ == '__main__': 表示,只有当程序是直接执行的才会进入if内部,如果是被导入的,则if无法导入
这样test_b就用不了了
*是导入所有的,但是如果你写__all__就表示all后面的功能成了所有,只能导入all后面写的功能
all只作用在*上面。但是如果你不使用*,那么就没有影响
标签:__,python,捕获,导入,出现异常,模块,异常 From: https://blog.csdn.net/2401_87332612/article/details/143079192