day14-数据持久化
数据持久化的应用
1.数据持久化
1)需要持久化的数据通过一个文件来保存
2)需要这个被持久化的数据的时候,不直接给值,而是从文件中读这个数据
3)如果被持久化的数据发生了改变,需要把最新的值再重新写入文件中
异常捕获
1.异常
程序报错又叫程序出现异常;如果在执行程序的过程中,出现异常,那么这个程序会在出现异常的地方结束。
2.异常捕获
异常捕获就是让程序在出现异常的时候不崩溃,可以继续执行。
什么时候捕获异常:明明知道某段代码可能会出现异常,但是又没有办法或者必要去通过修改这段代码来避免异常的时候,就可以使用异常捕获
"""
1)语法一(捕获所有类型的异常):
try:
代码段1(需要捕获异常的代码段)
except:
代码段2(出现异常后会执行的代码段)
finally:
代码段
其他语句...
执行过程:先执行代码段1,如果没有出现异常不执行代码2直接执行后面其他语句;
如果出现异常,程序不崩溃,马上执行代码段2,执行完后才执行后面其他的语句。
2)语法二:
try:
代码段1(需要捕获异常的代码段)
except 异常类型:
代码段2(出现指定异常后会执行的代码段)
finally:
代码段
3)语法三
try:
代码段1(需要捕获异常的代码段)
except (异常类型1, 异常类型2,...):
代码段2(出现指定异常后会执行的代码段)
finally:
代码段
4)语法四
try:
代码段1(需要捕获异常的代码段)
except 异常类型1:
代码段11
except 异常类型2:
代码段22
except 异常类型3:
代码段33
...
finally:
代码段
"""
3.关键字finally
所有的try-except结构后面都可以跟一个finally,它不影响原来代码的执行。
finally后面的代码段,不管前面的try-except发生什么,都会执行(包括出现异常没有捕获到)
常用的系统模块
1.随机模块
import random
# 1) randint(m, n) - 产生[m, n]的随机整数
print(random.randint(10, 20))
# 2) random() - 产生[0, 1)的随机小数
print(random.random())
# 产生[0 ~ 100)的随机小数
print(random.random()*100)
# 产生[10, 20)的随机小数
print(random.random()*10 + 10)
# 产生[50, 120)的随机小数
print(random.random()*70+50)
# 3) random.shuffle(列表) - 洗牌(随机打乱列表中元素的顺序)
nums = [10, 20, 30, 40, 50, 60]
random.shuffle(nums)
print(nums)
# 4)
# random.choice(列表) - 从列表中随机获取一个元素
# random.choices(列表, k=N) - 从列表中随机取N个元素
nums = [10, 20, 30, 40, 50, 60]
print(random.choice(nums))
print(random.choices(nums, k=2))