标准库time,datatime,calendar,random的使用

Python在安装的时候会默认自带一些标准库,这里将介绍一下几个常用标准库的用法,不足之处欢迎补充。

time

time库的基本介绍

1、time库是python中处理时间的标准库,可以用于计算机的时间表达,提供获取时间并格式化输出功能,还可以提供系统级精确计时功能,用于程序性能分析。比如我们需要记录某个程序运行的时间长短等。

2、time包含三类函数

  • 时间获取:time() ctime() gmtime()
  • 时间格式化:strftime() strptime()
  • 程序计时:sleep() perf_counter()
时间获取
函数描述
time()获取当前时间戳,即计算机内部时间值,浮点数
ctime()获取当前时间并以易读方式表示,返回字符串
gmtime()获取当前时间,表示为计算机可处理的时间格式
>>> time.time()
1516939876.6022282

>>> time.ctime()
'Fri Jan 26 12:11:16 2018'`

>>> time.gmtime()
time.struct_time(tm_year=2018, tm_mon=1,
tm_mday=26, tm_hour=4, tm_min=11, tm_sec=16,
tm_wday=4, tm_yday=26, tm_isdst=0)
时间格式化
函数描述
strftime(tpl, ts)tpl是格式化模板字符串,用来定义输出效果;ts是计算机内部时间类型变量
>>>t = time.gmtime()
>>>time.strftime("%Y-%m-%d %H:%M:%S",t)
'2018-01-26 12:55:20'
  • 格式化控制符
格式化字符串日期/时间说明值范围和实例
%Y年份0000~9999,例如:1900
%m月份01~12,例如:10
%B月份名称January~December,例如:April
%b月份名称缩写Jan~Dec,例如:Apr
%d日期01~31,例如:25
%A星期Monday~Sunday,例如:Wednesday
%a星期缩写Mon~Sun,例如:Wed
%H小时(24h制)00~23,例如:12
%h小时(12h制)01~12,例如:7
%p上/下午AM,PM,例如:PM
%M分钟00~59,例如:26
%S00~59,例如:26
函数描述
strptime(str, tpl)str是字符串形式的时间值;tpl是格式化模板字符串,用来定义输入效果
>>>t = time.gmtime()
>>>time.strftime("%Y-%m-%d %H:%M:%S",t)
 
>>>timeStr = '2018-01-26 12:55:20'
>>>time.strptime(timeStr, “%Y-%m-%d %H:%M:%S”)

程序计时作用
函数描述
perf_counter()返回一个CPU级别的精确时间计数值,单位为秒。由于这个计数值起点不确定,连续调用差值才有意义
sleep(s)s拟休眠的时间,单位是秒,可以是浮点数
>>>start = time.perf_counter()
318.66599499718114

>>>end = time.perf_counter()
341.3905185375658

>>>end - start
22.724523540384666

>>>def wait():
time.sleep(3.3)

>>>wait()   #程序将等待3.3秒后再退出

datetime

datetime库的基本介绍

1、datetime库可以从系统中获得时间,并以用户选择的格式输出。
date库以格林威治时间为基础,每天由3600*24秒精准定义。该库包括两个常量:datetime.MINYEAR 与 datetime.MAXYEAR,分别表示datetime所能表示的最小、最大年份,值分别为1与9999。
2、datetime库以类的方式提供多种日期和时间表达方式。
(1)datetime.data:日期表示类,可以表示年、月、日等。
(2)datetime.time:时间表示类,可以表示小时、分钟、秒、毫秒等。
(3)datetime.datetime:日期和时间表示的类,功能覆盖date和time类。
(4)datetime.timedelta:与时间间隔有关的类
(5)datetime.tzinfo:与时区有关的信息表示分类。
由于datetime.datetime 类表达形式最为丰富,这里主要介绍这个类的使用。

datetime库的使用

1、引用

>>> from datetime import datetime

2、datetime类的使用方法是首先创建一个datetime对象,然后通过对象的方法和属性显示时间。创建datetime对象有3种方法:datetime.now(),datetime.utcnow(),datetime.datetime()

  • datetime.now()
    作用:返回一个datetime 类型,表示当前的日期和时间,精确到微秒
    参数:无
>>> from datetime import datetime
>>> today = datetime.now()
>>> today
datetime.datetime(2019, 4, 15, 23, 11, 46, 854869)
  • datetime.utcnow()
    作用:返回一个datetime类型,表示当前日期和时间的UTC表示,精确到微秒
    参数:无
>>> today = datetime.utcnow()
>>> today
datetime.datetime(2019, 4, 15, 15, 14, 56, 60777)
  • datetime()
    可以直接使用datetime()构造一个日期和时间对象,使用方法如下:
datetime(year,month,day,hour=0,minute=0,second=0,microsecond=0)

作用:返回一个datetime类型,表示指定的日期和时间,可以精确到微秒
参数如下:
year:指定的年份MINYEAR<=year<=MAXYEAR
month:指定的月份,1~12
day:指定的日期,1~所对应月份上限
hour:指定的小时,0~24
minute:指定的分钟数
second:指定的秒数
microsecond:指定的微秒数,0~1000000

datetime的格式化
属性描述
someday.isoformat()采用ISO8601标准显示时间
someday.isoweekday()根据日期计算星期后返回1~7,对应星期一到星期日
someday.strftime(format)根据格式化字符串format进行格式显示的方法
  • isoformat()和isoweekday()方法的使用如下:
>>> someday = datetime(2019,4,16,22,23,33,2)
>>> someday
datetime.datetime(2019, 4, 16, 22, 23, 33, 2)

>>> someday.isoformat()
'2019-04-16T22:23:33.000002'

>>> someday.isoweekday()
2
  • strftime()方法的使用
格式化字符串日期/时间
%Y年份
%m月份
%B月名
%b月名缩写
%d日期
%A星期
%a星期缩写
%H小时(24h制)
%M分钟
%S
%x日期
%X时间

calendar

用法:import calendar

calen = calendar.Calendar()

ca1 = calen.iterweekdays()
# 输出;<generator object Calendar.iterweekdays at 0x0044D180>
ca1 = calen.itermonthdays(year=2018,month=7)
for i in ca1:
    print(i)
# 输出:0 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 31 0 0 0 0 0
# 迭代指定的月份,0表示非本月日期
 
ca2 = calen.itermonthdates(year=2018,month=7)
for i in ca2:
    print(i)
# 输出:2018-06-25 2018-06-26 2018-06-27 2018-06-28 2018-06-29 2018-06-30 2018-07-01 2018-07-02 2018-07-03 2018-07-04 2018-07-05 2018-07-06 2018-07-07 2018-07-08 2018-07-09 2018-07-10 2018-07-11
# 迭代指定月份的日历,格式为yyyy-mm-dd
 
ca3 = calen.itermonthdates(year=2018, month=7)
for i  in ca3:
    print(ca3)
# 输出的是文本日历

random

random库是使用随机数的Python标准库

  • 伪随机数: 采用梅森旋转算法生成的(伪)随机序列中元素
  • random库主要用于生成随机数
  • 使用random库: import random

random库包括两类函数,常用共8个

  • 基本随机数函数: seed(), random()
  • 扩展随机数函数: randint(), getrandbits(), uniform(), randrange(), choice(), shuffle()
基本随机数函数
函数描述
seed(a=None)初始化给定的随机数种子,默认为当前系统时间
>>>random.seed(10) #产生种子10对应的序列
random()生成一个[0.0, 1.0)之间的随机小数
>>>random.random()
0.5714025946899135
>>> import random
>>> random.seed(10)
>>> random.random()
0.5714025946899135
>>> random.random()
0.4288890546751146
…
>>> import random
>>> random.seed(10)
>>> random.random()
0.5714025946899135
>>> random.seed(10)
>>> random.random()
0.5714025946899135

扩展随机数函数
函数描述
randint(a, b)生成一个[a, b]之间的整数
>>>random.randint(10, 100)
64
randrange(m, n[, k])生成一个[m, n)之间以k为步长的随机整数
>>>random.randrange(10, 100, 10)
80
getrandbits(k)生成一个k比特长的随机整数
>>>random.getrandbits(16)
37885
uniform(a, b)生成一个[a, b]之间的随机小数
>>>random.uniform(10, 100)
13.096321648808136
choice(seq)从序列seq中随机选择一个元素
>>>random.choice([1,2,3,4,5,6,7,8,9])
8
shuffle(seq)将序列seq中元素随机排列,返回打乱后的序列
>>>s=[1,2,3,4,5,6,7,8,9];random.shuffle(s);print(s)
[3, 5, 8, 9, 6, 1, 2, 7, 4]
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值