calendar库和random库的使用

本文介绍了Python的calendar库和random库,详细讲解了calendar库的month、prmonth、prcal等函数,用于输出日历和处理日期;同时探讨了random库的seed、random、randint等方法,用于生成随机数。通过实例展示了各函数的使用,帮助理解这两个库的基本操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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、周数的处理:
  1. weekday(year, month, day):获取指定日期为星期几
  2. weekheader(n):返回包含星期的英文缩写,n表示英文缩写所占的宽度
  3. monthrange(year, month):返回一个由一个月第一个天的星期与当前月的天数组成的元组
  4. 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类又衍生了一些子孙类来帮助我们实现一些特殊的功能:

  1. calendar.Calendar(firstweekday=0)类
  2. calendar.TextCalendar(firstweekday=0)类
  3. 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值