python time库

time库包含三类函数:
-时间获取:time() ctime() gmtime()
-时间格式化:strftime() strptime()
-程序计时: sleep() perf_counter()

time库的使用:

#时间获取
time() :获取当前时间戳,即计算机内部时间值,浮点数
ctime():获取当前时间并以易读的方式返回
gmtime():获取当前时间,表示为计算机可处理的时间格式
>>> import time
>>> time.ctime()
'Sat Apr 14 14:53:14 2018'
>>> time.gmtime()
time.struct_time(tm_year=2018, tm_mon=4, tm_mday=14, tm_hour=6, tm_min=55, tm_sec=25, tm_wday=5, tm_yday=104, tm_isdst=0)
时间格式化:将时间以合理的方式展示出来
strftime(tpl,ts):  tpl是格式化模版字符串,用以定义输出效果
                   ts是计算机内部时间类型变量 
>>> t = time.gmtime()
>>> time.strftime("%Y-%m-%d %H:%M:%S",t)
'2018-04-14 06:58:41'
%Y 年份        %m  月份  
%B 月份名称    %b   月份名称缩写 
%d 日期   
%A 星期        %a  星期缩写  
%H 小时(24制)  %h  小时(12制)
%p 上下午      %M分钟   %S秒

strptime(str,tpl):  str是字符串形式的时间值
                    tpl是格式化末班字符串,用来定义输入效果
>>> timestr = '2018-04-14 15:08:20'
>>> time.strptime(timestr,"%Y-%m-%d %H:%M:%S")
time.struct_time(tm_year=2018, tm_mon=4, tm_mday=14, tm_hour=15, tm_min=8, tm_sec=20, tm_wday=5, tm_yday=104, tm_isdst=-1)
程序计时:指测量起止动作所经历时间的过程
测量时间:perf_counter()
产生时间:sleep()
perf_couter():返回一个cpu级别的精确时间计数值,单位为秒,连续调用差值才有意义
sleep(s):s是拟休眠时间,单位为秒,可以是浮点数
import time
def wait():
    time.sleep(3.3)
调用wait()函数,其作用是使程序等待3.3秒
文本进度条分析:采用字符串方式打印可以动态变化的文本进度条
如何获得文本进度条的变化时间
    -sleep()模拟一个持续的进度
文本进度条的简单开始
'''

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("--------执行结束-------")

'''
文本进度条的动态刷新
刷新的本质是:用后打印的字符覆盖之前的字符
不能换行->print(,end='')
要会退:打印后光标退回到之前的位置\r
'''
for i in range(101):
    print("\r{:3}%".format(i),end="")
    time.sleep(0.1)

'''
文本进度条完整效果
'''
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}%[{}{}]{:.4f}s".format(c,a,b,dur),end="")
    time.sleep(0.1)

print("\n"+"执行结束".center(scale//2,'-'))

文本进度条之举一反三

-在任何运行时间需要较长的程序中增加进度条
-在任何希望提高用户体验的应用中增加进度条
-进度条是人机交互的纽带之一
文本进度条的不同设计函数
Linear              Constant        f(x)=x
Early Pause
Late Pause
Slow Wavy
Fast Wavy
Power
Inverse Power
Fast Power
Inverse Fast Power

开始进度条展示慢一些,后续增长快时,用户体验会很棒


猜你喜欢

转载自blog.csdn.net/LawenceRay/article/details/79941240