time库的使用
- time库基本介绍
- 时间获取
- 时间格式化
- 程序计时应用
time库基本介绍
time库是 Python中处理时间的标准库
import time
time.< b >()
- 计算机时间的表达
- 提供获取系统时间并格式化输出功能
- 提供系统级精确计时功能,用于程序性能分析
time库包括三类函数
- 时间获取:time() ctime() gmtime()
- 时间格式化: strftime() strptime()
- 程序计时:sleep(), perf_counter()
时间获取
函数 | 描述 |
---|---|
time() | 获取当前时,即计算机内部时问值,浮数 >>>time.time() 15169398766022282 |
ctime | 获取当前时间井以易读方式表示,返回字符串 >>>time.ctime() Fri Jan 26 12:11:16 2018 |
gmtime | 获取当前时间,表示为计算机可处理的时间格式 |
时间格式化
将时间以合理的方式展示出来
- 样式化:类似字符串格式化,需要有展示模板
- 展示模板由特定的格式化控制符组成
- strftime()方法\
函数 | 描述 |
---|---|
strftime(tpl, ts) | tpl是格式化模板字符串,用来定义输出效果;ts是计算机内部时间类型变量 >>>t = time. gmtime() >>>time. strftime("%Y%m-%d %H: %M:%S",t) 2018-01-2612:55:20 |
格式化控制符
格式化字符 | 日期/时间说明 | 值范围和实例 |
---|---|---|
%Y | 年份 | 0000~-9999,例如:1900 |
%m | 月份 | 01~-12,例如:10 |
%B | 月份名称 | January-December,例如: Apr |
%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 |
%S | 秒 | 00-59,例如:26 |
程序计时
- 程计时指测量起止动作所经历时问的过程
- 测量时问: perf_counter()
- 产生时问: sleep()
函数 | 描述 |
---|---|
perf_counter() | 返回一个CPU级别的精确时间计数值。单位为秒 由于这个计数值起点不确定,连续调用差值才有意义 >>>start=time. perf_counter() 318.66599499718114 >>end = time. perf counter() 341,3985185375658 >>>end-start 22.724523548384666 |
sleep(s) | s拟休眠的时间,单位是秒,可以是浮点数 >>>def wait(): time.sleep(3. 3) >>>wait() |
datetime库的使用
datetime模块中包含如下类:
类名 | 功能说明 |
---|---|
date | 日期对象,常用的属性有year, month, day |
time | 时间对象 |
datetime | 日期时间对象,常用的属性有hour, minute, second, microsecond |
datetime_CAPI | 日期时间对象C语言接口 |
timedelta | 时间间隔,即两个时间点之间的长度 |
tzinfo | 时区信息对象 |
datetime模块中包含的常量
常量 | 功能说明 | 用法 | 返回值 |
---|---|---|---|
MAXYEAR | 返回能表示的最大年份 | datetime.MAXYEAR | 9999 |
MINYEAR | 返回能表示的最小年份 | datetime.MINYEAR | 1 |
Calendar模块
- calendar模块提供与日历相关的功能,包括为给定的月份或年份打印文本日历的功能。
- 默认情况下,日历将星期一作为一周的第一天,将星期日作为最后一天。如果想要更改这个,可调用calendar.setfirstweekday()函数设置修改。
- 以下是calendar模块可用的功能函数列表
函数 | 描述 |
---|---|
Calendar(year,w = 2,l = 1,c = 6) | 返回一个具有年份日历的多行字符串格式化为三列,以c个空格分隔。 w是每个日期的字符宽度;每行的长度为21 * w + 18 + 2 * c,l是每周的行数 |
firstweekday( ) | 返回当前设置每周开始的星期。默认情况下,当日历首次导入时设置为:0,表示为星期一。 |
isleap(year) | 如果给定年份(year)是闰年则返回True;否则返回:False。 |
leapdays(y1,y2) | 返回在范围(y1,y2)内的年份中的闰年总数。 |
Month(year,month,w=2,l =1) | 返回一个多行字符串,其中包含年份月份的日历,每周一行和两个标题行。 w是每个日期的字符宽度;每行的长度为7 * w + 6。 l是每周的行数。 |
Monthcalendar(year,month) | 返回int类型的列表。每个子列表表示一个星期。年份月份以外的天数设置为0;该月内的日期设定为月份的第几日:1 ~ 31。 |
Monthrange(year,month) | 返回两个整数。第一个是年度月(month)的星期几的代码;第二个是当月的天数。表示星期几为0(星期一)至6(星期日);月份是1到12。 |
Prcal(year,w = 2,l = 1,c = 6) | 类似于:calendar.calendar(year,w,l,c)的打印。 |
Prmonth(year,month,w = 2,l = 1) | 类似于:calendar.month(year,month,w,l)的打印。 |
setfirstweekday(weekday) | 将每周的第一天设置为星期几的代码。星期几的代码为0(星期一)至6(星期日)。 |
timegm(tupletime) | time.gmtime的倒数:以时间元组的形式接受时刻,并返回与从时代(epoch)开始的浮点数相同的时刻。 |
weekday(year,month,day) | 返回给定日期的星期几的代码。星期几的代码为0(星期一)至6(星期日);月数是1(1月)到12(12月)。 |
random库的使用
random库是使用随机数的Python标准库
从概率论角度来说,随机数是随机产生的数据(比如抛硬币),但时计算机是不可能产生随机值,真正的随机数也是在特定条件下产生的确定值,只不过这些条件我们没有理解,或者超出了我们的理解范围。计算机不能产生真正的随机数,那么伪随机数也就被称为随机数
- 伪随机数:计算机中通过采用梅森旋转算法生成的(伪)随机序列元素
- python中用于生成伪随机数的函数库是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 #随机数产生与种子有关,如果种子是1哦,第一个数必定是这个 |
在random库中,最基本的是seed 和random 函数,但时功能比较单一,为此产生了6个扩展随机数函数
函数 | 描述 |
---|---|
randint(a,b) | 生成一个[a,b]之间的整数 |
randrange(m,n[,k]) | 生成一个[m,n)之间以k为步长的随机整数 >>>random.randrange(10,100,10) |
getrandbits(k) | 生成一个k比特长的随机整数 >>>random.getrandbits(16) 37885 |
uniform(a,b) | 生成一个[a,b]之间的随机小数 >>>random.uniform(10,100) 16.848041210321334 |
choice(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) [9, 4, 6, 3, 5, 2, 8, 7, 1] |
函数产生随机数
- –能够产生随机整数
- –能对序列类型进行随机操作