模块和异常
-
模块
模块的定义:python中一个py文件就是一个模块
使用前需要导入
导入方法:
1) import 模块名 - 导入指定模块,导入后可以通过'模块名.xxx'的方式使用这个模块中的全局变量 2) from 模块名 import 变量1,变量2,变量3,... - 导入指定模块,导入后可以直接使用指定的变量 3) from 模块名 import * - 导入指定模块,导入后可以直接使用模块中所有的全局变量 4) import 模块名 as 新模块名 - 对模块重命名 5) from 模块名 import 变量1 as 新变量1, 变量2 as 新变量2, ... - 对变量重命名
-
导入模块的原理
导入原理:不管是import还是from-import导入模块的时候,系统都会自动进入指定的模块,将模块中的代码全部执行一遍。
阻止导入:阻止的方法:在被导入的模块中添加main对应的if语句,把不希望被别的模块执行的代码放到if语句里面
-
包
包的定义:python中将包好了__init__.py文件的文件夹叫做包,它是专门用来管理模块的
怎么使用包中的模块中的内容:
1)import 包名 - 直接导入包,导入后可以用'包名.xxx'去使用包中__init__.py文件中的所有的全局变量 2)import 包名.模块名 - 导入包中指定的模块,导入后可以用'包名.模块名.xxx'去使用指定模块中的所有的全局变量 3)from 包名 import 模块名1,模块名2,... 4)from 包名.模块名 import 变量1, 变量2, ....
-
异常捕获
程序执行过程中报的错就是异常
异常捕获 就是让程序出现异常的时候不崩溃
捕获异常的语法结构:
一、捕获任何类型的异常
try: 代码段1(需要捕获异常的代码) except: 代码段2(捕获到异常以后会执行的代码) 执行过程:先执行代码段1,如果代码段1出现异常不会报错,而是马上执行代码段2;如果代码段1没有出现异常,代码段2不执行。
二、捕获特定类型的异常
try: 代码段1(需要捕获异常的代码) except 异常类型: 代码段2(捕获到异常以后会执行的代码)
三、可以同时捕获多种异常,针对不同的异常做相同的处理
try: 代码段1(需要捕获异常的代码) except (异常类型1, 异常类型2,...): 代码段2(捕获到异常以后会执行的代码)
四、可以同时捕获多种异常,针对不同的异常做不同的处理
try: 代码段1 except 异常类型1: 代码段11 except 异常类型2: 代码段22 except 异常类型3: 代码段33
五、异常捕获完整结构
try: 代码段1(需要捕获异常的代码) except: 代码段2(捕获到异常后会执行的代码) else: 代码段3(没有出现异常会执行的代码) finally: 代码段4(无论有没有出现异常也不管异常有没有捕获到,都会执行的代码 - 无论什么情况都会执行) try: print('abc'[4]) except KeyError: print('出现异常') else: print('没有出现异常') finally: print('都会执行')
-
抛出异常
让程序主动报错、崩溃
语法:
raise 异常类型
# 自定义异常类型: class AgeError(Exception): def __str__(self): return '年龄值有误,正确的年龄范围是0岁到150岁!' age = int(input('请输入正确的年龄(0~150):')) if age < 0 or age > 150: raise AgeError