时间获取:
- time:获得当前的时间戳,浮点数,从1970.1.1 0:00开始以秒为单位的数值
- ctime():获得当前时间并以易读方式表示,返回字符串
- gmtime():表示为计算机可处理的时间格式:
例:
time.struct_time(tm_year=2022, tm_mon=3, tm_mday=4, tm_hour=7,tm_min=24, tm_sec=23, tm_wday=4, tm_yday=63, tm_isdst=0)
时间格式化:
- strptime(str,tpl)
tpl是格式化模板字符串,用来定义输出效果;ts是计算机内部时间类型变量
例:
t = time.gmtime()
time.strftime(“%Y-%m-%d %H:%M:%S”,t)
知识点:
表达 | 意思 |
---|---|
%Y | 年份 |
%m | 月份 |
%B | 月份名称 |
%b | 月份名称缩写 |
%d | 日期 |
%A | 星期 |
%a | 星期缩写 |
%H | 小时-24小时制 |
%I | 小时12小时制 |
%p | 上/下午 |
%M | 分钟 |
%S | 秒 |
- strptime(str,tpl)
str是字符串形式的时间值
例:
timeStr = ‘2018-01-26 12:55:20’ time.strptime(timeStr,“%Y-%m-%d %H:%M:%S”)
输出:
time.struct_time(tm_year=2018, tm_mon=1, tm_mday=26,tm_hour=12, tm_min=55, tm_sec=20, tm_wday=4, tm_yday=26, tm_isdst=-1)
程序计时:
指测量起止动作所经历时间的过程
- 测量时间:perf_counter()
返回一个CPU级别的精确时间计数值,单位为妙
例:输入
start = time.perf_counter()
end = time.perf_counter()
end - start
- 产生时间:sleep()
sleep(s):s拟休眠时间,单位为妙,可以是浮点数。
例:
def wait():
time.sleep(3.3)
wait() #程序等待3.3秒再退出
实例:文本进度条
输入:
#TextProBarV1.py
import time
scale = 10
print("------执行开始------")
for i in range(scale+1):
a = '*' * i
b = '.' *(scale-i)
c = (i/scale)*100
print("{:^3.0f}%[{}->{}]".format(c,a,b))
time.sleep(0.1)
print("-----执行结束------")
输出:
------执行开始------
0 %[->..........]
10 %[*->.........]
20 %[**->........]
30 %[***->.......]
40 %[****->......]
50 %[*****->.....]
60 %[******->....]
70 %[*******->...]
80 %[********->..]
90 %[*********->.]
100%[**********->]
-----执行结束------
>>>
为实行单行动态刷新:在输出某一个字符的字符串的时候不能换行到下一行,对print()函数实现控制,打印后光标能退回到之前的位置 \r
输入:
#TextProBarV1.py
import time
for i in range(101): #0%~100%,需要101次
print("\r{:3}%".format(i),end="")
''',end="" 不换行,光标停留在当次输出字符串的后面
光标先放在行首,再输出,输出后不换行,进入下一次循环'''
time.sleep(0.1)
输出:
这是因为利用IDLE环境F5键运行结果,IDLE是一个编写程序的开发环境,并不是运行程序的主要环境,程序其实是没有错的。可利用命令提示符进行查看,见下面。
import time
scale = 50
print("执行开始".center(scale//2,'-'))
start = time.perf_counter()
for i in range(scale+1):
a = '*' * i
b = '.' *(scale-i)
c = (i/scale)*100
dur = time.perf_counter()-start #记录每次打印文本进度条时所消耗的时间
print("\r{:^3.0f}%[{}->{}]{:.2f}s".format(c,a,b,dur),end='')
time.sleep(0.1)
print("\n"+"执行结束".center(scale//2,"-"))
输出:
~ 学习快乐呀 ~