1、异常处理函数
a.异常处理概念
即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行
b.异常处理作用
为了保证程序的稳定性和健壮性
稳定性:保证程序正常稳定的运行
健壮性:能够自己处理一些异常信息,处理异常
c.异常处理语法(基础版)
第一种方式:
try:
要执行的代码
except 错误类型1:
出现错误的代码
try:
num = int(input('请输入整数:'))
print(num)
except:
print('请输入正确的整数')
第二种方式:
try:
要执行的代码
except 错误类型1:
出现错误的代码
except 错误类型2:
出现错误的代码
try:
num=int(input('请输入整数:'))
result=5/num
print(result)
except ValueError:
print('输入的值有错误,不要瞎写')
except ZeroDivisionError:
print('0不能被整除')
print('请输入正确的整数')
第三种方式:
try:
要执行的代码
except (错误类型1,错误类型2):
出现错误的代码
try:
num=int(input('请输入整数:'))
result=5/num
print(result)
except (ValueError,ZeroDivisionError):
print('请输入正确的整数,不要瞎写')
print('请输入正确的整数')
d.异常处理演练
a.输入错误了,还想让他继续运行,直到输入正确的时候就不运行
while True:
try:
num=int(input('请输入整数:'))
print(num)
break
except:
print('请输入正确的整数')
print('输完了')
b.想要有错误提示就用 as 变量名捕获到
try:
num=int(input('请输入整数:'))
result=5/num
print(result)
except Exception as e:
print('所有的错误,我都在这里处理掉%s' %e)
e.异常错误类型
a.BaseException:所有异常的基类
b.Exception:常规错误的基类
c.ZeroDivisionError:除(或取模)零
d.IOError:输入/输出操作失败
e.IndexError:序列中没有此索引
f.ValueError:传入无效的参数
f.异常处理语法(升级版)
try:
尝试的代码
except 错误类型 as e:
打印错误的信息
except Expection as e:
打印错误的信息
else:
没有异常就会去执行
finally:
无论是否有异常都会执行
try:
num=int(input('请输入整数'))
result=5/num
print(result)
except ZeroDivisionError as e:
print('0错误')
except ValueError as e:
print('值错误')
except Exception as e:
print('所有的错误,我都在这里处理掉%s' %e)
else:
print('没有异常就会去执行')
finally:
print('无论是否有异常都会执行')
g.自定义异常:raise 主动抛出异常
需求:
定义一个密码函数,提示输入用户密码
如果用户输出的长度大于8,抛出异常 自定义一个异常
如果用户输出的长度小于等于8,返回密码
def input_pwd():
pwd=input('请输入密码长度:')
if len(pwd)<=8:
return pwd
aa=Exception('密码超出8位,请修改')
raise aa
a=input_pwd()
print(a)
h.异常处理顺序
try,except,else,finall
正常执行:try正常执行,执行else不执行except ,执行之后,执行 finall;
异常执行:try异常执行,不执行else执行except ,执行之后,执行finall;
2、时间日期模块
a.导入calendar:import calendar
b.输出月日历
cal=calendar.month(2022,4)
print(cal)
输出结果:
April 2022
Mo Tu We Th Fr Sa Su
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30
c.输出年日历
year=calendar.calendar(2022)
print(year)
d.时间戳、时间元组、日期转化
a.导入时间:import time
b.时间戳(time.time())
a.时间戳概念:描述某个时间到另外一个时间相隔的秒数(某个时间格林威治时间1970年1月1日0000 北京时间1970,1,1,8点)
b.当前时间戳
print(time.time()) 输出结果:1650432080.583152
c.时间元组(time.localtime())
a.年月日时分秒|周天|年天|夏令时
print('当前时间元组',time.localtime())
输出结果:time.struct_time(tm_year=2022, tm_mon=4, tm_mday=20, tm_hour=14, tm_min=3, tm_sec=41, tm_wday=2, tm_yday=110, tm_isdst=0)
print('当前时间元组',time.localtime(1650434206.816021))
输出结果:time.struct_time(tm_year=2022, tm_mon=4, tm_mday=20, tm_hour=14, tm_min=3, tm_sec=31, tm_wday=2, tm_yday=110, tm_isdst=0)
print('当前时间元组',time.localtime(time.time()))
输出结果:time.struct_time(tm_year=2022, tm_mon=4, tm_mday=20, tm_hour=14, tm_min=3, tm_sec=41, tm_wday=2, tm_yday=110, tm_isdst=0)
b.以数字的形式去表示
t=(2021,9,9,21,48,21,3,252,0)
print(t) 输出结果:(2022, 4, 20, 13, 30, 27, 2, 110, 0)
c.元组转为时间戳 time.mktime()
a.指定时间转为时间戳
print('指定时间元组转为时间戳:',time.mktime((2022,3,20,0,0,0,0,0,0)))
输出结果:指定时间转为时间戳: 1647705600.0
b.当前时间转为时间戳
print('当前时间元组转为时间戳:',time.mktime(time.localtime()))
输出结果:当前时间转为时间戳: 1650435005.0
d.日期转换
a.元组转化成日期:time.asctime()
print(time.asctime(time.localtime(time.time()))) 输出结果:Wed Apr 20 13:36:25 2022
b.时间改为系统时间:time.strftime()
print(time.strftime('%Y-%m-%d %H-%M-%S')) 输出结果:2022-04-20 13-38-21
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现