美文网首页
基本扩展模块

基本扩展模块

作者: 无尽的结 | 来源:发表于2019-01-11 17:45 被阅读0次

一、calendar模块(即日历模块)

calendar模块中有跟日历相关的若干函数和类,可以生成文本形式的日历,也可以通过函数获得一个列表,列表生成一个文本形式的日历。

1.calendar模块中常用的函数
calendar.calendar(<年>)
calendar.month(<年>,<月>)
calendar.prmonth(<年>,<月>)
calendar.prcal(<年>)
1.1用calendar模块中的常用函数举个实例如下图所示:
>>> import calendar
>>> calendar.month(2018,3) #calendar.month后面写入一个年月获得该年该月的日历,但是这里是以多行字符串的形式返回的,字符串之间是以换行符\n隔开
'     March 2018\nMo Tu We Th Fr Sa Su\n          1  2  3  4\n 5  6  7  8  9 10 11\n12 13 14 15 16 17 18\n19 20 21 22 23 24 25\n26 27 28 29 30 31\n'
>>> print(calendar.month(2018,3))#直接输出打印就可以获得一个排好的日历
     March 2018
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 31

>>> calendar.prmonth(2018,3) #引用prmonth函数就没有返回值直接输出一个排好的日历
     March 2018
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 31
>>> calendar.calendar(2018)#calendar.calendar后面写入一个年获得该年的日历,但是这里是以多行字符串的形式返回的,字符串之间是以换行符\n隔开
'                                  2018\n\n      January                   February                   March\nMo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su\n 1  2  3  4  5  6  7                1  2  3  4                1  2  3  4\n 8  9 10 11 12 13 14       5  6  7  8  9 10 11       5  6  7  8  9 10 11\n15 16 17 18 19 20 21      12 13 14 15 16 17 18      12 13 14 15 16 17 18\n22 23 24 25 26 27 28      19 20 21 22 23 24 25      19 20 21 22 23 24 25\n29 30 31                  26 27 28                  26 27 28 29 30 31\n\n       April                      May                       June\nMo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su\n                   1          1  2  3  4  5  6                   1  2  3\n 2  3  4  5  6  7  8       7  8  9 10 11 12 13       4  5  6  7  8  9 10\n 9 10 11 12 13 14 15      14 15 16 17 18 19 20      11 12 13 14 15 16 17\n16 17 18 19 20 21 22      21 22 23 24 25 26 27      18 19 20 21 22 23 24\n23 24 25 26 27 28 29      28 29 30 31               25 26 27 28 29 30\n30\n\n        July                     August                  September\nMo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su\n                   1             1  2  3  4  5                      1  2\n 2  3  4  5  6  7  8       6  7  8  9 10 11 12       3  4  5  6  7  8  9\n 9 10 11 12 13 14 15      13 14 15 16 17 18 19      10 11 12 13 14 15 16\n16 17 18 19 20 21 22      20 21 22 23 24 25 26      17 18 19 20 21 22 23\n23 24 25 26 27 28 29      27 28 29 30 31            24 25 26 27 28 29 30\n30 31\n\n      October                   November                  December\nMo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su\n 1  2  3  4  5  6  7                1  2  3  4                      1  2\n 8  9 10 11 12 13 14       5  6  7  8  9 10 11       3  4  5  6  7  8  9\n15 16 17 18 19 20 21      12 13 14 15 16 17 18      10 11 12 13 14 15 16\n22 23 24 25 26 27 28      19 20 21 22 23 24 25      17 18 19 20 21 22 23\n29 30 31                  26 27 28 29 30            24 25 26 27 28 29 30\n                                                    31\n'


>>> print(calendar.calendar(2018))#也可以直接输出获得一个排好的一整年的日历
                                  2018

      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  7                1  2  3  4                1  2  3  4
 8  9 10 11 12 13 14       5  6  7  8  9 10 11       5  6  7  8  9 10 11
15 16 17 18 19 20 21      12 13 14 15 16 17 18      12 13 14 15 16 17 18
22 23 24 25 26 27 28      19 20 21 22 23 24 25      19 20 21 22 23 24 25
29 30 31                  26 27 28                  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          1  2  3  4  5  6                   1  2  3
 2  3  4  5  6  7  8       7  8  9 10 11 12 13       4  5  6  7  8  9 10
 9 10 11 12 13 14 15      14 15 16 17 18 19 20      11 12 13 14 15 16 17
16 17 18 19 20 21 22      21 22 23 24 25 26 27      18 19 20 21 22 23 24
23 24 25 26 27 28 29      28 29 30 31               25 26 27 28 29 30
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             1  2  3  4  5                      1  2
 2  3  4  5  6  7  8       6  7  8  9 10 11 12       3  4  5  6  7  8  9
 9 10 11 12 13 14 15      13 14 15 16 17 18 19      10 11 12 13 14 15 16
16 17 18 19 20 21 22      20 21 22 23 24 25 26      17 18 19 20 21 22 23
23 24 25 26 27 28 29      27 28 29 30 31            24 25 26 27 28 29 30
30 31

      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  7                1  2  3  4                      1  2
 8  9 10 11 12 13 14       5  6  7  8  9 10 11       3  4  5  6  7  8  9
15 16 17 18 19 20 21      12 13 14 15 16 17 18      10 11 12 13 14 15 16
22 23 24 25 26 27 28      19 20 21 22 23 24 25      17 18 19 20 21 22 23
29 30 31                  26 27 28 29 30            24 25 26 27 28 29 30
                                                    31
>>> calendar.prcal(2018) #也可以直接用prcal函数获得一个排好的日历
                                  2018

      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  7                1  2  3  4                1  2  3  4
 8  9 10 11 12 13 14       5  6  7  8  9 10 11       5  6  7  8  9 10 11
15 16 17 18 19 20 21      12 13 14 15 16 17 18      12 13 14 15 16 17 18
22 23 24 25 26 27 28      19 20 21 22 23 24 25      19 20 21 22 23 24 25
29 30 31                  26 27 28                  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          1  2  3  4  5  6                   1  2  3
 2  3  4  5  6  7  8       7  8  9 10 11 12 13       4  5  6  7  8  9 10
 9 10 11 12 13 14 15      14 15 16 17 18 19 20      11 12 13 14 15 16 17
16 17 18 19 20 21 22      21 22 23 24 25 26 27      18 19 20 21 22 23 24
23 24 25 26 27 28 29      28 29 30 31               25 26 27 28 29 30
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             1  2  3  4  5                      1  2
 2  3  4  5  6  7  8       6  7  8  9 10 11 12       3  4  5  6  7  8  9
 9 10 11 12 13 14 15      13 14 15 16 17 18 19      10 11 12 13 14 15 16
16 17 18 19 20 21 22      20 21 22 23 24 25 26      17 18 19 20 21 22 23
23 24 25 26 27 28 29      27 28 29 30 31            24 25 26 27 28 29 30
30 31

      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  7                1  2  3  4                      1  2
 8  9 10 11 12 13 14       5  6  7  8  9 10 11       3  4  5  6  7  8  9
15 16 17 18 19 20 21      12 13 14 15 16 17 18      10 11 12 13 14 15 16
22 23 24 25 26 27 28      19 20 21 22 23 24 25      17 18 19 20 21 22 23
29 30 31                  26 27 28 29 30            24 25 26 27 28 29 30
                                                    31
>>> 
1.2将日历列表化:calendar.monthcalendar()返回某一年的某一个月份日历,是一个嵌套列表如下图所示:
>>> import calendar
>>> calendar.monthcalendar(2018,9)
[[0, 0, 0, 0, 0, 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,1,2]因为2018年9月1号是星期六2号为星期天所以前面的一到星期五都用零表示
1.3与日历相关的计算
1.3.1判别闰年:普通闰年能被4整除但不能被100整除的年份。世纪闰年能被400整除的年份,在这里可以调用calendar模块中的isleap函数进行判断如下图所示:
import calendar
print(calendar.isleap(2018))
print(calendar.isleap(2020))

输出

F:\j\venv\Scripts\python.exe F:/j/demo12.py
False #输出结果为false则表示不是闰年
True #输出结果为true则表示是闰年
Process finished with exit code 0
1.3.2计算某月共有多少天,从周几开始

calendar.monthrange()可以计算出某月共有多少天,从周几开始,返回值从0开始,依次为周一、周二...比如说返回值为(0,30)表示这个月是从星期一开始总共三十天。
calendar.weekday()可以计算某天是周几,返回值为0-6依次对应的是周一到周日。
1.3.2实例如下图所示:

>>> calendar.monthrange(2018,9)
(5, 30) #返回值为5和30表示2018年9月是从礼拜六开始的总共30天
>>> calendar.weekday(2018,8,15)
2 #返回值为2表示2018年8月15日为星期三
>>> 

二、时间相关模块time模块

time模块可以用在程序中的时间的计时中,在这里会涉及到获取时间戳、获取日期格式、利用索引获取时间信息、让程序睡一会也可以说让程序暂停 一会

2.1获取时间戳

time.time()方法 在time模块中调用time方法获取时间戳

2.1.1时间戳的用处:可以用时间戳对时间进行计时如下图所示:
import time
t1 = time.time()#获取当前时间
a = 0
for i in range(10):
    a+=i
print(a)
t2 = time.time()#获取for循环程序运行之后再获取当前时间
print(t2-t1)#获取for循环程序运行之后再获取当前时间减去未执行循环程序之前的所获取的当前时间就可以得到运行循环这段代码用了多长时间

输出

F:\j\venv\Scripts\python.exe F:/j/demo12.py
45
0.0

Process finished with exit code 0
2.2获取日期格式

time.asctime()
time.ctime()
用以上两种方法获取当前时间是一样的得到是一个字符串表示的日期如下图所示:

>>> import time
>>> time.asctime()
'Fri Jan 11 16:33:31 2019' #获得一个字符串表示的日期
>>> time.ctime()
'Fri Jan 11 16:33:52 2019'
>>> 
2.2.1将元组数据转化为日期

比如说t = (2018,13,11,42,31,0,0,0)等号右边元组中这一系列的数值分别对应年、月、日、时、分、秒、周几、一年中的第几天、是否是夏令时间。如下图所示:

>>> t = (2018,8,13,11,42,31,0,0,0)
>>> time.asctime(t) #将元组数据转化为日期
'Mon Aug 13 11:42:31 2018' #返回一个元组所描述的日期时间
>>> 
2.3利用索引获取时间消息

struct_time类
time.localtime
struct_time这个类当中有一个localtime就是获得当前本地的时间返回这么一个类如下图所示:

>>> time.localtime()
time.struct_time(tm_year=2019, tm_mon=1, tm_mday=11, tm_hour=16, tm_min=57, tm_sec=49, tm_wday=4, tm_yday=11, tm_isdst=0)
>>> 
#这个类里面分了很多的字段,每个字段都对应代表了年月日时分秒这些数据,比如tm_year=2019表示2019年

对上图这个类用索引对它进行访问如下图所示:

>>> t =  time.localtime() #将time.localtime赋值给t
>>> t[0] #获取上图类中的年份即当前本地时间的年份
2019
>>> t[2] #获取类中的日期,即当前本地时间的多少日或者号
11
>>>
2.4让程序睡一会,即让程序运行到某处时暂停一下

time.sleep()
运用time.sleep()这个方法可以让程序运行到某处时睡一会如下图所示:

import time
for x in range(3):
    print(x) #首先将x打印出来返回0,1,2
    t1 = time.time() #在sleep执行之前获取一次系统时间即一个时间戳
    time.sleep(1) #sleep(1)表示暂停1秒钟
    t2 = time.time()再写一个时间戳t2
    print(t2-t1)t2-t1实际上是暂停了sleep执行了多长时间

输出

F:\j\venv\Scripts\python.exe F:/j/demo12.py
0
1.0000572204589844
1
1.0000572204589844
2
1.0002555847167969

Process finished with exit code 0

相关文章

网友评论

      本文标题:基本扩展模块

      本文链接:https://www.haomeiwen.com/subject/mwptdqtx.html