python标准库详解——time,datetime,calendar,random

Python有一套很有用的标准库(standard library),是随着Python安装的时候默认自带的库。
今天要介绍的几个标准库,都是大家在平时可能会经常用到的,分别是:time,datetime,calendar,random.

文章目录

  • time
      • time库概述
      • time库常用函数
            • 时间获取
            • 时间格式化
            • 格式化控制符
            • 程序计时
  • datetime
      • datetime库概述
      • datetime类详解
            • 创建datetime对象
            • 时间格式化方法
  • calendar
      • calendar库概述
      • calendar库常用函数
  • random
      • random库概述
      • random库常用函数

time

time库概述

time库是python中处理时间的标准库,可以用于计算机时间的表达,提供获取系统时间并格式化输出功能,还可以提供系统级精确计时功能,用于程序性能分析。

time库常用函数

时间获取
函数 描述
time() 获取当前时间戳,就是计算机内部时间值
ctime() 获取当前时间并且以易读的方式表示,返回字符串
gmtime() 获取当前时间,表示为计算机可处理的时间格式
>>> import time
>>> time.time()
1554616452.6606421
>>> time.ctime()
'Sun Apr  7 13:54:17 2019'
>>> time.gmtime()
time.struct_time(tm_year=2019, tm_mon=4, tm_mday=7, tm_hour=5, tm_min=56, tm_sec=14, tm_wday=6, tm_yday=97, tm_isdst=0)
时间格式化
函数 描述
strftime(tpl,ts) tpl是格式化模板字符串,用来定义输入效果,ts是计算机内部时间类型变量
strptime(str,tpl) str是字符串形式的时间值,tpl是格式化模板字符串,用来定义输入效果
>>> import time
>>> t = time.gmtime()
>>> time.strftime("%Y-%m-%d %H:%M:%S",t)
'2019-04-07 06:01:44'
>>> import time
>>> str = '2019-04-07 06:01:44'
>>> time.strptime(str,"%Y-%m-%d %H:%M:%S")
time.struct_time(tm_year=2019, tm_mon=4, tm_mday=7, tm_hour=6, tm_min=1, tm_sec=44, tm_wday=6, tm_yday=97, tm_isdst=-1)
格式化控制符
格式化字符串 日期/时间 值范围
%Y 年份 0001~9999
%m 月份 01~12
%B 月名 January~December
%b 月名缩写 Jan~Dec
%d 日期 01~31
%A 星期 Monday~Sunday
%a 星期缩写 Mon~Sun
%H 小时(24h制) 00~23
%M 分钟 00~59
%S 00~59
程序计时
函数 描述
sleep(s) s拟休眠的时间,单位是秒,可以是浮点数
perf_counter() 返回一个CPU级别的精确时间计数值,单位为秒。由于这个计数值起点不确定,连续调用差值才有意义。
>>> import time
>>> start = time.perf_counter()
>>> end = time.perf_counter()
>>> print(end - start)
12.841975971506235

datetime

datetime库概述

datetime库提供了一系列由简单到复杂的时间处理方法,可以从系统中获得时间,并以用户选择的格式输出。

datetime库以类的方式提供多种日期和时间表达方式。

  1. datetime.date日期表示类,可以表示年、月、日等
  2. datetime.time事件表示类,可以表示小时、分钟、秒、毫秒等。
  3. datetime.datetime日期和时间表示的类,功能覆盖date和time类
  4. datetime.timedelta与时间间隔有关的类
  5. datetime.tzinfo与时区有关的信息表示类

datetime类详解

创建datetime对象

创建datetime对象有三种方法:

  1. datetime.now()获得当前日期和时间对象
>>> from datetime import datetime
>>> datetime.now()
datetime.datetime(2019, 4, 7, 14, 32, 2, 42854)
  1. datetime.utcnow()获得当前日期和时间对应的UTC(世界标准时间)时间对象
>>> from datetime import datetime
>>> datetime.utcnow()
datetime.datetime(2019, 4, 7, 6, 33, 51, 484251)
  1. datetime(year,month,day,hour=0,minute=0,second=0,microsecond=0)构造一个日期和时间对象
>>> from datetime import datetime
>>> someday = datetime(2019, 4, 7, 14, 32, 2)
datetime.datetime(2019, 4, 7, 14, 32, 2)
时间格式化方法
属性 描述
someday.isoformat() 采用ISO 8601标准显示时间
someday.isoweekday() 根据日期计算星期后返回1~7,对应星期一到星期日
someday.strftime(format) 根据格式化字符串format进行格式显示的方法
>>> from datetime import datetime
>>> someday = datetime(2019, 4, 7, 14, 32, 2)
>>> someday
datetime.datetime(2019, 4, 7, 14, 32, 2)
>>> someday.isoformat()
'2019-04-07T14:32:02'
>>> someday.isoweekday()
7
>>> someday.strftime("%Y-%m-%d")
'2019-04-07'

calendar

calendar库概述

calendar 模块是python实现的unix 的 cal命令。它可以以标准的模式打印出给定年月的日历。calendar模块文件里定义了很多类型,主要有Calendar,TextCalendar以及HTMLCalendar类型。

calendar库常用函数

点击这里,查看12个函数的用法

  1. calendar.calendar(year,w=2,l=1,c=6)
  2. calendar.firstweekday()
#返回一周的第一天
>>> import calendar
>>> calendar.setfirstweekday(firstweekday=0)
>>> print(calendar.firstweekday())
0
  1. calendar.isleap(year)
#判断指定年是否为闰年,若是,则返回True
>>> import calendar
>>> print(calendar.isleap(2018))
False
>>> print(calendar.isleap(2020))
True
  1. calendar.leap(year)
  2. calendar.leapdays(y1,y2)
#返回y1和y2之间的闰年数量,包括起始年,不包括终止年
>>> import calendar
>>> print(calendar.leapdays(2018,2020))
0
>>> print(calendar.leapdays(2018,2021))
1
  1. calendar.month(year,month,w=2,l=1)
  2. calendar.monthcalendar(year,month)
  3. calendar.prcal(year,w=2,l=1,c=6)
  4. calendar.prmonth(year,month,w=2,l=1)
  5. calendar.setfirstweekday(weekday)
#将星期一设为一周的第一天(周一为0,周日为6)
>>> import calendar
>>> calendar.setfirstweekday(firstweekday=0)
  1. calendar.timegm(tupletime)
  2. calendar.weekday(year,month,day)
#获取指定日期为星期几
>>> import calendar
>>> print(calendar.weekday(2019,4,8))
0

random

random库概述

随机数在计算机应用中非常常见,random库主要用于产生各种分布的伪随机数序列。random库采用Mersenne Twister生成伪随机序列,可以用于除随机性要求更高的加解密算法外的大多数工程应用。

random库常用函数

函数 描述
seed() 初始化随机数种子,默认值为当前系统时间
random() 生成一个[0.0,1.0)之间的随机小数
randint(a,b) 生成一个[a,b]之间的整数
getrandbits(k) 生成一个k比特长度的随机整数
randrange(start,stop[,step]) 生成一个[start,stop)之间以step为步数的随机整数
uniform(a,b) 生成一个[a,b]之间的随机小数
choice(seq) 从序列类型,例如列表中随机返回一个元素
shuffle(seq) 将序列类型中的元素随机排列,返回打乱后的序列
sample(pop,k) 从pop类型中随机选取k个元素,以列表类型返回

我挑几个自认为用得比较多的函数来举个例子。

  1. 随机小数
>>> import random
>>> random.random()
0.7678480467199341
  1. 随机整数
>>> import random
>>> random.randint(1,10)
7
>>> random.randint(1,10)
4
  1. 随机字符
>>> import random
>>> a = random.choice(["C","C++","JAVA","PYTHON","R","PHP","SQL"])
>>> print(a)
SQL
  1. 随机洗牌
>>> import random
>>> a = ["C","C++","JAVA","PYTHON","R","PHP","SQL"]
>>> random.shuffle(a)
>>> print(a)
['JAVA', 'C++', 'PYTHON', 'SQL', 'R', 'C', 'PHP']

你可能感兴趣的:(python学习)