标准库time、datetime、calendar、random的使用

time标准库

time包

time包基于C语言的库函数(library functions)。Python的解释器通常是用C编写的,Python的一些函数也会直接调用C语言的库函数。

import time
print(time.time())   
print(time.clock())  

time.sleep()可以将程序置于休眠状态,直到某时间间隔之后再唤醒程序,让程序继续运行。

import time
time.sleep(10)     # sleep for 10 seconds

time包还定义了struct_time对象。该对象实际上是将挂钟时间转换为年、月、日、时、分、秒……等日期信息,存储在该对象的各个属性中(tm_year, tm_mon, tm_mday…)。下面方法可以将挂钟时间转换为struct_time对象:

st = time.gmtime()      # 返回struct_time格式的UTC时间
st = time.localtime()   # 返回struct_time格式的当地时间, 当地时区根据系统环境决定。

s  = time.mktime(st)    # 将struct_time格式转换成wall clock time

time常用函数清单

asctime(p_tuple = None)时间元组–>字符串 None:当前时间的元组–>字符串
ctime(seconds=None)时间戳–>字符串 None:当前时间戳–>字符串
gmtime(seconds=None)时间戳–>国际时间元组 None:当前时间戳–>国际时间元组
localtime(seconds=None)时间戳–>地方时间元组 None:当前时间戳–>地方时间元组
mktime(p_tuple)时间元组–>时间戳
sleep(seconds)睡眠给定的秒数
strftime(format,p_tuple=None)将时间元组格式化成字符串,p_tuple=None: 将当前时间格式化成字符串
strptime(string,format)按照格式化形式将字符串转换成时间元组
time()返回当前的时间戳

时间戳:从1970年到现在的秒数

时间元组格式化成字符串的格式控制符

格式含义
%a本地(locale)简化星期名称
%A本地完整星期名称
%b本地简化月份名称
%B本地完整月份名称
%c本地相应的日期和时间表示
%d一个月中的第几天(01 - 31)
%H一天中的第几个小时(24小时制,00 - 23)
%I第几个小时(12小时制,01 - 12)
%j一年中的第几天(001 - 366)
%m月份(01 - 12)
%M分钟数(00 - 59)
%p本地am或者pm的相应符
%S秒(01 - 61)
%U一年中的星期数。(00 - 53星期天是一个星期的开始。)第一个星期天之前的所有天数都放在第0周。
%w一个星期中的第几天(0 - 6,0是星期天)
%W和%U基本相同,不同的是%W以星期一为一个星期的开始。
%x本地相应日期
%X本地相应时间
%y去掉世纪的年份(00 - 99)
%Y完整的年份
%Z时区的名字(如果不存在为空字符)
%%‘%’字符

datetime

datetime包
1) 简介

datetime包是基于time包的一个高级包, 为我们提供了多一层的便利。

datetime可以理解为date和time两个组成部分。date是指年月日构成的日期(相当于日历),time是指时分秒微秒构成的一天24小时中的具体时间(相当于手表)。你可以将这两个分开管理(datetime.date类,datetime.time类),也可以将两者合在一起(datetime.datetime类)。

import datetime
t = datetime.datetime(2019,4,2,21,30)
print(t)

2) 运算

datetime包还定义了时间间隔对象(timedelta)。一个时间点(datetime)加上一个时间间隔(timedelta)可以得到一个新的时间点(datetime)。

import datetime
t      = datetime.datetime(2019,4,2,21,30)
t_next = datetime.datetime(2012,4,5,23,30)
delta1 = datetime.timedelta(seconds = 600)
delta2 = datetime.timedelta(weeks = 3)
print(t + delta1)
print(t + delta2)
print(t_next - t)

3) datetime对象与字符串转换
一个字符串转换成为datetime对象

from datetime import datetime
format = "output-%Y-%m-%d-%H%M%S.txt" 
str    = "output-2019-4-2-030000.txt" 
t      = datetime.strptime(str, format)

调用datetime对象的strftime()方法,来将datetime对象转换为特定格式的字符串

print(t_next.strftime(format))

datetime类的常用属性

someday.min固定返回datetime的最小时间对象,datetime(1,1,1,0,0)
someday.max固定返回datetime的最大时间对象,datetime(9999,12,31,23,59,999999)
someday.year返回someday包含的年份
someday.month返回someday包含的月份
someday.day返回someday包含的日期
someday.hour返回someday包含的小时
someday.minute返回someday包含的分钟
someday.second返回someday包含的秒钟
someday.microsecond返回someday包含的微秒值

datetime类常用的时间格式化方法

someday.isoformat()采用ISO 8601标准显示时间
someday.isoweekday()根据日期计算星期后返回1->7,对应星期一到星期日
someday.strftime(format)根据格式化字符串format进行格式显示的方法

calendar

函数描述
calendar.calendar(year,w=2,l=1,c=6)返回一个多行字符串格式的year年年历,3个月一行,间隔距离为c。 每日宽度间隔为w字符。每行长度为21* W+18+2* C。l是每星期行数。
calendar.firstweekday( )返回当前每周起始日期的设置。默认情况下,首次载入caendar模块时返回0,即星期一。
calendar.isleap(year)是闰年返回True,否则为false。
calendar.leapdays(y1,y2)返回在Y1,Y2两年之间的闰年总数。
calendar.month(year,month,w=2,l=1)返回一个多行字符串格式的year年month月日历,两行标题,一周一行。每日宽度间隔为w字符。每行的长度为7* w+6。l是每星期的行数。
calendar.monthcalendar(year,month)返回一个整数的单层嵌套列表。每个子列表装载代表一个星期的整数。Year年month月外的日期都设为0;范围内的日子都由该月第几日表示,从1开始。
calendar.monthrange(year,month)返回两个整数。第一个是该月的星期几的日期码,第二个是该月的日期码。日从0(星期一)到6(星期日);月从1到12。
calendar.prcal(year,w=2,l=1,c=6)相当于 print calendar.calendar(year,w,l,c).
calendar.prmonth(year,month,w=2,l=1)相当于 print calendar.calendar(year,w,l,c)。
calendar.setfirstweekday(weekday)设置每周的起始日期码。0(星期一)到6(星期日)。
calendar.timegm(tupletime)和time.gmtime相反:接受一个时间元组形式,返回该时刻的时间辍(1970纪元后经过的浮点秒数)。
calendar.weekday(year,month,day)返回给定日期的日期码。0(星期一)到6(星期日)。月份为 1(一月) 到 12(12月)。

random

参考链接:https://www.cnblogs.com/yd1227/archive/2011/03/18/1988015.html
Python中的random模块用于生成随机数。下面介绍一下random模块中最常用的几个函数。
random.random
random.random()用于生成一个0到1的随机符点数: 0 <= n < 1.0

random.uniform
random.uniform的函数原型为:random.uniform(a, b),用于生成一个指定范围内的随机符点数,两个参数其中一个是上限,一个是下限。如果a > b,则生成的随机数n: a <= n <= b。如果 a <b, 则 b <= n <= a。

print (random.uniform(10, 20))  
print (random.uniform(20, 10)) 
#18.7356606526  
#12.5798298022  

random.randint
 random.randint()的函数原型为:random.randint(a, b),用于生成一个指定范围内的整数。其中参数a是下限,参数b是上限,生成的随机数n: a <= n <= b

print (random.randint(12, 20))  #生成的随机数n: 12 <= n <= 20  
print (random.randint(20, 20))  #结果永远是20  
#print (random.randint(20, 10))  #该语句是错误的。下限必须小于上限。  

random.randrange
 random.randrange的函数原型为:random.randrange([start], stop[, step]),从指定范围内,按指定基数递增的集合中 获取一个随机数。如:random.randrange(10, 100, 2),结果相当于从[10, 12, 14, 16, … 96, 98]序列中获取一个随机数。random.randrange(10, 100, 2)在结果上与 random.choice(range(10, 100, 2) 等效。

random.choice
 random.choice从序列中获取一个随机元素。

random.shuffle
random.shuffle的函数原型为:random.shuffle(x[, random]),用于将一个列表中的元素打乱。如:

p = [“python”,"hello","world"]  
random.shuffle(p)  
print (p)  
#['asdh', 'world', 'hello', 'python']

random.sample
random.sample的函数原型为:random.sample(sequence, k),从指定序列中随机获取指定长度的片断。sample函数不会修改原有序列。

list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]  
slice = random.sample(list, 5)  #从list中随机获取5个元素,作为一个片断返回  
print (slice)  
print (list) #原有序列并没有改变。
#[8, 7, 5, 6, 1]
#[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]  
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值