calendar库
此模块允许你输出类似Unix cal程序的日历,并提供与日历相关的其他有用功能。值得注意的是,默认情况下,这些日历将星期一作为一周的第一天,将星期日作为一周的最后一天(欧洲惯例)。
常用函数
1、setfirstweekday(firstweekday):指定一周的第一天,0是星期一,…,6为星期日
import calendar
calendar.setfirstweekday(firstweekday=6)
2、calendar.firstweekday():返回一周的第一天,0是星期一,…,6为星期日
print(calendar.firstweekday())
返回默认值:0
3、month(year, month, w=0, l=0)和prmonth(year, month, w=0, l=0)返回指定年的某月
w每个单元格宽度,l每列换l行
print(calendar.month(2019, 4))
返回结果:
April 2019
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
4、prcal(year, w=0, l=0, c=6, m=3)和calendar(year, w=2, l=1, c=6, m=3):返回指定年的日历
w每个单元格宽,l每列换l行,c表示月与月之间的间隔宽度,m表示将12个月分为m列
print(calendar.calendar(2019))
calendar.prcal(2019, m=4)
返回结果:
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
5、isleap(year):判断指定是否是闰年,闰年为True,平年为False
如下示例:
print(calendar.isleap(2019)) #返回False
print(calendar.isleap(2008)) #返回Ture
6、leapdays(y1, y2):返回y1与y2年份之间的闰年数量,y1与y2皆为年份。包括起始年,不包括结束年
如下示例:
print(calendar.leapdays(2008, 2019)) #返回3
7、周数的处理:
- weekday(year, month, day):获取指定日期为星期几
- weekheader(n):返回包含星期的英文缩写,n表示英文缩写所占的宽度
- monthrange(year, month):返回一个由一个月第一个天的星期与当前月的天数组成的元组
- monthcalendar(year, month):返回一个月中天数列表(不是当前月份的天数为0),按周划分,为一个二维数组。包括月份开始那周的所有日期和月份结束那周的所有日期
print(calendar.weekday(2019,4,12)) #返回4
print(calendar.weekheader(4)) #返回(2, 31)
print(calendar.monthrange(2018, 8)) #返回Mon Tue Wed Thu Fri Sat Sun
print(calendar.monthcalendar(2019, 4))
#返回
[[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, 0, 0, 0, 0, 0]]
PS:
calendar模块主要由Calendar类与一些模块方法构成,Calendar类又衍生了一些子孙类来帮助我们实现一些特殊的功能:
- calendar.Calendar(firstweekday=0)类
- calendar.TextCalendar(firstweekday=0)类
- calendar.HTMLCalendar(firstweekday=0)类
random库
random库是使用随机数的Python标准库
random库包含两类函数,常用的共8个:
–基本随机函数: seed(), random()
–扩展随机函数:randint(), getrandbits(), uniform(), randrange(), choice(), shuffle()
一、基本随机函数
1、 seed(a=None) :初始化给定的随机数种子,默认为当前系统时间
random.seed(10) #产生种子10对应的序列
2、random():生成一个[0.0,1.0)之间的随机小数
a = random.random()
返回结果:0.08930535766235326
#随机数产生与种子有关,如果种子是1,第一个数必定是0.5714025946899135
二、扩展随机函数
1、randint(a,b) :生成一个[a,b]之间的整数
random.randint(10,100) #返回一个1到100的随机整数
返回结果:15
2、randrange(m,n[,k]) :生成一个[m,n)之间以k为步长的随机整数
random.randrange(10,100,10) #返回一个10到100的10的倍数
返回结果:30
3、 getrandbits(k) :生成一个k比特长的随机整数
random.getrandbits(16)
返回结果:59710
4、uniform(a,b) :生成一个[a,b]之间的随机小数
random.uniform(10,100)
返回结果:31.716761185187842
5、choice(seq) :从序列中随机选择一个元素
random.choice([1, 2, 3, 4, 5, 6, 7, 8, 9])
返回结果:4
6、shuffle(seq)将序列seq中元素随机排列,返回打乱后的序列
random.shuffle(s)
返回结果:[7, 2, 9, 1, 4, 6, 3, 8, 5]
参考博客:https://blog.youkuaiyun.com/y472360651/article/details/82291753
https://www.cnblogs.com/masked/p/8846439.html