1.异常,程序出错就叫程序中出现了异常
当执行程序的时候出现异常,出现异常的线程会直接崩溃,不会再执行该后面其他的代码。
2.异常捕获,
语法1:能够捕捉除了结构异常之外的所有异常
try:
代码块1
except:
代码块2
finally:
代码块3
说明:关键字,try,except固定写法,
代码块1:和try保持一个缩进的一条或者多条语句;需要捕获异常的代码;
代码块2:和except保持一个缩进的一条或者多条语句;异常发生之后出现的代码;
执行过程:
执行代码块1->异常(程序不奔溃)->执行代码块2->执行其他语句;
代码块一无异常->执行后文其他语句;
语法2:捕获指定的异常类型
try:
代码块1
except 异常类型:
代码块2
执行过程:代码块1->程序崩溃->异常类型与指定异常类型是否相同->相同则执行代码块2;不相同就报错。
语法3:捕获指定的多个异常
try:
代码块1
except 异常类型1,异常类型2,...:
代码块2
语法4:同时捕获指定多个异常
try:
代码块1
except 异常类型1:
代码块11
except 异常类型2:
代码块22
except 异常类型3:
代码块33
...
3.finally关键字
前面4中捕获异常的结构后面都可以添加一个finally,不管finally前面的程序如何执行,finally后面的语句都会执行。
4.抛出异常
主动让代码奔溃
语法:raise 异常类型
说明,异常类型必须是Exception的子类
5.模块的使用
模块的定义:python中,一个py文件就是一个模块
如果要在一个模块中必须先导入模块
语法1:import 模块名
导入后,可以使用导入模块的所有全局变量,以模块名.全局变量名的方式去使用。
语法2:from 模块名 import 变量名1,变量名2...
导入指定模块,导入后只能使用import后面指定的变量,导入后,指定的全局变量在当前文件中直接使用。
语法3:from 模块名 import * : 可以使用导入模块的所有全局变量,以模块名.全局变量名的方式去使用,使用不加模块名。
重命名:import 模块名 as 新模块名(大写,简写):在当前的文件中采用新模块名使用模块中的内容。
from 模块名 import 变量名1 as 新的变量名1,变量名2 as 新的变量名2
6.导入模块的原理
当系统在执行导入模块的代码时,系统会直接执行被导入的模块中所有的代码。
import导入模块的时候会自动检查这个模块是否已经导入过来避免一个模块的重复导入。
阻止模块中的内容被其他模块导入,将不需要被其他模块执行的语句写入if语句中
if __name__ == '__main__': 代码 py文件的name是固定属性,main文件就是运行的文件
7.包,一个带有init.py的文件夹就叫包。直接导入包的时候,先导入init.py文件
只有from 包 import 模块 语句才能调用,调用的时候使用 模块.变量
from 包.模块 mport 函数,可以直接调用变量
8.系统常用模块
time:提供和时间相关的方法
9.hashlib模块,提供hash加密的模板,支持目前主流的一些加密算法:sha256,md5,等。
特点:相同的数据采用相同的加密算法产生出相同的加密结果;
根据加密结果没有办法解出原密码;
采用同样的加密算法,原数据的大小不管是多少,加密之后的长度是一样的。
加密步骤:
根据加密算法,创建一个哈希对象
对数据进行加密,加密数据必须是2进制数据
根据hash对象获取加密后的数据
pw="hskdhfsd23" hash = hashlib.sha3_256 hash.update(pw.encode()) 或者 hash.update(bytes(pw,encoding="utf-8"))
2019-08-07总结
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...