标准库 time、datatime、calender、random 的使用

time 库的使用


time库是Python中处理时间的标准库。
提供系统级精确计时功能用于程序性能分析;提供获取系统时间并格式化输出功能。


时间获取

>>>import time
>>>time.time()       #返回一个时间戳,即计算机内部时间值,浮点数
1555291246.2271936
>>>time.ctime()      #获取易读形式的时间,字符串类型
'Mon Apr 15 09:20:47 2019'
>>>time.gmtime()     #获取当前时间,表示为计算机可处理的时间格式
time.struct_time(tm_year=2019, tm_mon=4, tm_mday=15, tm_hour=1, tm_min=20, tm_sec=48, tm_wday=0, tm_yday=105, tm_isdst=0)

时间格式化

>>>t = time.gmtime()
>>>time.strftime("%Y-%m-%d %H:%M:%S",t)
'2019-04-15 01:31:52'
>>>timeStr = '2019-04-15 01:31:52'
>>>time.strptime(timeStr, "%Y-%m-%d %H:%M:%S")
time.struct_time(tm_year=2019, tm_mon=4, tm_mday=15, tm_hour=1, tm_min=31, tm_sec=52, tm_wday=0, tm_yday=105, tm_isdst=-1)

程序计时
对于运行时间较长的程序,往往需要先进行小规模(短时间)的实验,并根据实验结果预估最终程序的大致运行时间。
参考“1000万次循环计时”代码,在jupyter下运行。
在这里插入图片描述

datatime 库的使用


Python 时间处理的标准函数库 datatime 提供了一批显示日期和时间的格式化方法。


datetime模块定义了5个类

  • datetime.date: 日期表示类,年月日
  • datetime.time: 时间表示类,小时、分钟、秒、毫秒
  • datetime.datetime:日期时间表示类,覆盖以上
  • datetime.timedelta:时间间隔有关类
  • datetime.tzinfo:时区有关信息表示类
>>>import datetime
>>>print(datetime.date.today()) #输出当前系统日期
2019-04-15
>>>time.time()
1555293597.9980886
>>>time.time()
>>>print(datetime.date.fromtimestamp(time.time()))  #将时间戳格式转换为日期格式
2019-04-15
>>>str_to_date = datetime.datetime.strptime("15/04/19 09:58","%d/%m/%y %H:%M")  #将字符串转换成日期格式
>>>print(str_to_date)
2019-04-15 09:58:00

calender 库的使用


calendar模块有很广泛的方法用来处理年历和月历。


函数描述
calendar.calendar(year, w=2, l=1, c=6, m=3)返回一个多行字符串格式的year年年历。
calendar.firstweekday()返回当前每周起始日期的设置。默认返回0,即星期一。
calendar.isleap(year)闰年返回True,否则False。
calendar.leapdays(y1, y2)返回y1到y2之间的闰年总数,包含y1,不包含y2。
calendar.month(year, month, w=2, l=1)返回一个多行字符串格式的year年month月日历。
calendar.monthcalendar(year,month)返回一个整数的单层嵌套列表。每个子列表装载一个星期。该月之外的日期都为0,该月之内的日期设为该日的日期,从1开始。
calendar.monthrange(year, month)返回两个整数组成的元组,第一个是该月的第一天是星期几,第二个是该月的天数。
calendar.prcal(year, w=2, l=1, c=6)相当于print calendar.calendar(year)
calendar.setfirstweekday(weekday)设置每周起始日期码。0(星期一)到6(星期日)
calendar.timegm(tupletime)和time.gmtime相反,接收一个时间元组,返回该时刻的时间戳(计算机元年之后的秒数)
calendar.weekday(year, month, day)返回给定日期的星期码,0(星期一)到6(星期日)。
>>>import calendar
>>>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
>>> calendar.isleap(2019)  #判断其是否为闰年
False
>>> calendar.isleap(year=2020)
True

>>> calendar.weekday(2019,4,15)
0

random 库的使用


随机运算的标准函数库 random 共提供 9 个常用函数。
此模块可以生成随机浮点数、整数、字符串;随机选择列表序列中的一个元素;打乱一组数据。


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

其中前2个为基本随机数函数,后7个为扩展随机数函数。

引用random库

  • import random
  • from random import *
  • from random import random
>>>import random
>>>print(random.uniform(2, 5))
2.446029488582863

>>>from random import *
>>>uniform(2, 5)
2.783550402060669

>>>random.choice(["Serena","Williams","&","Gayle","King"])
'Gayle'

盖尔·金对小威的访谈 可以看看小威闲谈 ← 脱下球衣战袍也是一位可爱母亲☺️

伪随机数
伪随机数是用确定性的算法计算出来自[0,1]均匀分布的随机数序列。并不真正的随机,但具有类似于随机数的统计特征,如均匀性、独立性等。在计算伪随机数时,若使用的初值(种子)不变,那么伪随机数的数序也不变。伪随机数可以用计算机大量生成,在模拟研究中为了提高模拟效率,一般采用伪随机数代替真正的随机数。模拟中使用的一般是循环周期极长并能通过随机数检验的伪随机数,以保证计算结果的随机性。

>>>import numpy as np
>>>num=0
>>>while(num<5):
>>>    np.random.seed(1)
>>>    print(np.random.random())
>>>    num+=1
0.417022004702574
0.417022004702574
0.417022004702574
0.417022004702574
0.417022004702574
>>>num1=0
>>>np.random.seed(2)
>>>while(num1<5):
>>>    print(np.random.random())
>>>    num1+=1
0.43599490214200376
0.025926231827891333
0.5496624778787091
0.4353223926182769
0.42036780208748903
#参考代码 只要未改变种子,得到的随机数就不会改变。
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值