# 异常案例1try:
num =int(input('请输入一个数字:'))
rst =100/ num
print('计算结果是:{0}'.format(rst))except:print('你特么的输入些啥玩意儿')# 退出程序
exit()"""
运行结果:
请输入一个数字:6six
你特么的输入些啥玩意儿
"""
# 异常案例2try:
num =int(input('请输入一个数字:'))
rst =100/ num
print('计算结果是:{0}'.format(rst))# 捕获异常后,把异常实例化,出错信息会在实例化中# 如果时多个error的情况,需要把更具体的错误往前放except ZeroDivisionError as e:print('你特么的输入些啥玩意儿!')print(e)# 退出程序
exit()except NameError as e:print('名字起错了')print(e)
exit()except AttributeError as e:print('属性有问题')print(e)
exit()except Exception as e:print('我也不知道什么错误')print(e)
exit()"""
运行结果:
请输入一个数字:madman
我也不知道什么错误
invalid literal for int() with base 10: 'madman'
"""
手动引发异常
当用户希望自己引发一个异常的时候使用
自定义异常必须时系统异常的字类
引发异常关键字:raise
语法:raise ErrorClassName
# raise异常案例try:print('I love Python')print(3.1415926)# 手动引发一个异常raise ValueError
except NameError as e:print('NameError')except ValueError as e:print('ValueError')except Exception as e:print('Exception')finally:print('finally')"""
运行结果:
I love Python
3.1415926
ValueError
finally
"""
# raise自定义异常案例# 自己定义异常# 自定义异常必须是系统异常的子类classMadmanValueError(ValueError):passtry:print('I love Python')print(3.1415926)# 手动引发一个异常raise MadmanValueError
except NameError as e:print('NameError')except MadmanValueError as e:print('MadmanValueError')except ValueError as e:print('ValueError')except Exception as e:print('Exception')finally:print('finally')"""
运行结果:
I love Python
3.1415926
MadmanValueError
finally
"""
# else语句案例try:
num =int(input('请输入一个数字:'))
rst =100/ num
print('计算结果是:{0}'.format(rst))except Exception as e:print('Exception')else:print('No Exception')finally:print('Finally')"""
运行结果:
请输入一个数字:6
计算结果是:16.666666666666668
No Exception
Finally
"""
自定义异常
只要是raise的异常,则推荐使用自定义异常
在自定义异常的时候,一般包含以下内容
自定义发生异常的异常代码
自定义发生医生后的问题提示
自定义发生异常的行数
最终的目的是让程序员能够快速定位错误内容
常用模块
calendar模块
跟日历相关的模块
calendar()
获取某一年的日历
参数
theyear:指定年份
w:每个日期之间的间隔字符数(默认w=2)
l:每周所占用的行数(默认l=1)
c:每个月之间的间隔字符数(默认c=6)
m:一行显示多少个月份(默认m=3)
返回值为字符串类型
# calendar案例1import calendar
cal = calendar.calendar(theyear=2019)print(type(cal))print(cal)"""
运行结果:
<class 'str'>
2019
January February March
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 2 3 4 5 6 1 2 3 1 2 3
7 8 9 10 11 12 13 4 5 6 7 8 9 10 4 5 6 7 8 9 10
14 15 16 17 18 19 20 11 12 13 14 15 16 17 11 12 13 14 15 16 17
21 22 23 24 25 26 27 18 19 20 21 22 23 24 18 19 20 21 22 23 24
28 29 30 31 25 26 27 28 25 26 27 28 29 30 31
April May June
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 2 3 4 5 6 7 1 2 3 4 5 1 2
8 9 10 11 12 13 14 6 7 8 9 10 11 12 3 4 5 6 7 8 9
15 16 17 18 19 20 21 13 14 15 16 17 18 19 10 11 12 13 14 15 16
22 23 24 25 26 27 28 20 21 22 23 24 25 26 17 18 19 20 21 22 23
29 30 27 28 29 30 31 24 25 26 27 28 29 30
July August September
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 2 3 4 5 6 7 1 2 3 4 1
8 9 10 11 12 13 14 5 6 7 8 9 10 11 2 3 4 5 6 7 8
15 16 17 18 19 20 21 12 13 14 15 16 17 18 9 10 11 12 13 14 15
22 23 24 25 26 27 28 19 20 21 22 23 24 25 16 17 18 19 20 21 22
29 30 31 26 27 28 29 30 31 23 24 25 26 27 28 29
30
October November December
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 2 3 4 5 6 1 2 3 1
7 8 9 10 11 12 13 4 5 6 7 8 9 10 2 3 4 5 6 7 8
14 15 16 17 18 19 20 11 12 13 14 15 16 17 9 10 11 12 13 14 15
21 22 23 24 25 26 27 18 19 20 21 22 23 24 16 17 18 19 20 21 22
28 29 30 31 25 26 27 28 29 30 23 24 25 26 27 28 29
30 31
"""
# calendar案例2import calendar
cal = calendar.calendar(theyear=2019, l=0, c=5, m=2)print(cal)"""
运行结果:
2019
January February
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 2 3 4 5 6 1 2 3
7 8 9 10 11 12 13 4 5 6 7 8 9 10
14 15 16 17 18 19 20 11 12 13 14 15 16 17
21 22 23 24 25 26 27 18 19 20 21 22 23 24
28 29 30 31 25 26 27 28
March April
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 2 3 1 2 3 4 5 6 7
4 5 6 7 8 9 10 8 9 10 11 12 13 14
11 12 13 14 15 16 17 15 16 17 18 19 20 21
18 19 20 21 22 23 24 22 23 24 25 26 27 28
25 26 27 28 29 30 31 29 30
May June
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 2 3 4 5 1 2
6 7 8 9 10 11 12 3 4 5 6 7 8 9
13 14 15 16 17 18 19 10 11 12 13 14 15 16
20 21 22 23 24 25 26 17 18 19 20 21 22 23
27 28 29 30 31 24 25 26 27 28 29 30
July August
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 2 3 4 5 6 7 1 2 3 4
8 9 10 11 12 13 14 5 6 7 8 9 10 11
15 16 17 18 19 20 21 12 13 14 15 16 17 18
22 23 24 25 26 27 28 19 20 21 22 23 24 25
29 30 31 26 27 28 29 30 31
September October
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 1 2 3 4 5 6
2 3 4 5 6 7 8 7 8 9 10 11 12 13
9 10 11 12 13 14 15 14 15 16 17 18 19 20
16 17 18 19 20 21 22 21 22 23 24 25 26 27
23 24 25 26 27 28 29 28 29 30 31
30
November December
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 2 3 1
4 5 6 7 8 9 10 2 3 4 5 6 7 8
11 12 13 14 15 16 17 9 10 11 12 13 14 15
18 19 20 21 22 23 24 16 17 18 19 20 21 22
25 26 27 28 29 30 23 24 25 26 27 28 29
30 31
"""
# timeit()案例1import timeit
# 执行100000次,查看运行时间
t1 = timeit.timeit(stmt="[i for i in range(1000)]", number=100000)
c ='''
sum = []
for i in range(1000):
sum.append(i)
'''# 对c字符串执行100000次,查看运行时间
t2 = timeit.timeit(stmt=c, number=100000)print(type(t1))print(t1)print(type(t2))print(t2)"""
运行结果:
<class 'float'>
3.2871785
<class 'float'>
6.679100900000001
"""
# timeit()案例2import timeit
defdo_it():
num =2for i inrange(num):print('Repeat for {0}'.format(i))# 执行函数,重复2次
t = timeit.timeit(stmt=do_it, number=2)print(t)"""
运行结果:
Repeat for 0
Repeat for 1
Repeat for 0
Repeat for 1
3.9600000000000746e-05
"""
# timeit()案例3import timeit
s ="""
def do_it(num):
for i in range(num):
print('Repeat for {0}'.format(i))
"""# 执行函数,重复2次
t = timeit.timeit(stmt='do_it(num)', setup=s+'num=2', number=2)print(type(t))print(t)"""
运行结果:
Repeat for 0
Repeat for 1
Repeat for 0
Repeat for 1
<class 'float'>
4.389999999998562e-05
"""
os模块
和操作系统相关,主要是对文件进行操作
os:操作系统目录相关
os.path:系统路径相关操作
shutil:高级文件操作,目录树的操作、文件复制、操作、移动…
模块属性
curdir
当前目录
格式:os.curdir
# curdir案例import os
print(type(os.curdir))print(os.curdir)"""
运行结果:
<class 'str'>
.
"""
pardir
上一级目录
格式:os.pardir
# pardir案例import os
print(type(os.pardir))print(os.pardir)"""
运行结果:
<class 'str'>
..
"""
sep
当前系统的路径分隔符
格式:os.sep
# sep案例import os
print(type(os.sep))print(os.sep)"""
运行结果:
<class 'str'>
\
"""
linesep
当前系统的换行符
Windows:\r\n
Unix\Linux\MacOS:\n
格式:os.linesep
# linesep案例import os
print(type(os.linesep))print(os.linesep)"""
运行结果:
<class 'str'>
"""
name
当前系统名称
格式:os.name
# nameimport os
print(type(os.name))print(os.name)"""
运行结果:
<class 'str'>
nt
"""