常见的异常类型
| 异常名称 | 描述 |
|---|---|
| AttributeError | 对象没有这个属性 |
| OSError | 操作系统错误 |
| ImportError | 导入模块/对象失败 |
| IndexError | 序列中没有此索引(index) |
| KeyError | 没有这个键 |
| NameError | 未声明/初始化对象(没有属性) |
| SyntaxError | Python语法错误 |
| TypeError | 对类型无效的操作 |
| ValueError | 传入无效的参数 |
| Warning | 警告的基类 |
为了尽量减少代码异常对程序带来的影响,我们一般有以下操作:
法1
# 捕获异常
d1 = {'name':'zs','age':18,'sex':'男','python':50}
try:
print(d1['python'])
except: #当try的条件不满足的时候,就运行
print('没有这个key')
d1['python']=100
else:
print('捕获的代码没有问题') #捕获的代码没有问题的时候就执行
print(d1)
输出结果:
法2
raise Exception()
代码输出:Exception
断言
assert 4>9
print('NO PROBLEM')
当assert之后的条件判断成立之后才会往下执行
案例:
def cooking(minutes):
if minutes < 5:
raise Exception('时间没到,还不能吃')
else:
print('已经熟了,可以吃了')
cooking(3)
cooking(6)
代码输出:
random模块
random模块是一个python的内置的随机数模块
当然我们也可以导入自定义模块,自定义模块,就比如另一个文件中的代码,想要调用的时候除了每次都复制粘贴,也可以直接只用导入自定义模块,例如有一个文件名叫【example.py】,想要利用该文件中的【Person()】功能,就如下使用:
import example
p1=example.Person()
print(p1.drink())
输出结果:
注意:导入模块的之后,只有首次会自动执行一次(相当于缓存一次),之后无论导入多少次都不会再执行。
模块相当于一个py文件,包相当于文件夹,可包含多个文件
所以,导入的方式也有两种
- import test文件夹.example
- from test文件夹 import example
random
import random
print(random.random()) #[0,1)
print(random.random()*100) #[0,100)
print(random.randint(1,5)) #生成[1,5]指定区间整数
print(random.sample([4,5,8,97,5,3,5],3)) #从集合中选择指定个数
print(random.choice((34,23,4,6,2))) #从元组中随机拿一个元素出来
l1=[1,2,3,4,5]
random.shuffle(l1) #打乱顺序
print(l1)
输出结果:
time模块
import time
print(time.localtime())
tm = time.localtime()
print(time.strftime('%m--%d-%y',tm))
输出:
| time | 说明 |
|---|---|
| %Y | 完整的四位数年份(例如,2023) |
| %H | 24小时制的小时数(例如,12) |
| %I | 12小时制的小时数(例如,06) |
| %M | 分钟数(例如,34) |
| %S | 秒数(例如,56) |
| %y | 两位数的年份(例如,23) |
| %m | 两位数的月份(例如,07) |
| %d | 两位数的日期(例如,05) |
datetime也是与时间有关的模块
datetime.datetime.now()→输出当前时间
Json模块
json是数据格式转换的模块
| json模块常用方法 | |
|---|---|
| json.loads() | json转为字典(适用于语句) |
| json.dumps() | 字典转为json(适用于语句) |
| json.load() | json转为字典(适用于文件) |
| json.dump() | 字典转为json(适用于文件) |
d2 = {'name':'zs','age':[12,354,54,4]}
print(type(d2))
res_js = json.dumps(d2) #转成json格式
print(res_js,type(res_js))
res_python = json.loads(res_js) #转成python字典格式
print(res_python,type(res_python))
输出结果: