mooc课的课堂笔记
import time
time库
时间获取
time() 获取当前时间戳,即计算机内部时间值,浮点数。(从1970年1月1日0:00开始到现在)
time.time() >>>1516939876.6022282
ctime() 获取当前时间并以易读方式表示,返回字符串
time.ctime() >>>'Fr Jan 26 12:11:16 2018'
gmtime() 获取当前时间,表示为计算机可处理的时间格式
时间格式化
将时间以合理的方式展示出来
strftime(tpl,ts) tpl是格式化模板字符串,用来定义输出效果,ts是计算机内部时间类型变量
t=time.gtime()
time.strftime("%Y-%m_%d %H:%M:%S",t)
>>>'2018-01-26 12:55:20'
格式化字符串:
%Y 年份 0000~9999
%m 月份 01~12
%B 月份名称 January~December
%b 月份名称缩写 Jan~Dec
%d 日期 01~31
%A 星期 Monday~Sunday
%a 星期缩写 Mon~Sun
%H 小时(24时制) 00~23
%I 小时(12时制) 01~12
%P 上/下午 AM,PM
%M 分钟 00~59
%S 秒 00~59
time.strptime(str,tpl) str是字符串形式的时间值,tpl是格式化模板字符串,用来定义输入效果
可以将字符串转换成一个计算机内部可以操作的一个时间。
程序计时应用
程序计时指测量起止动作所经历时间的过程
测量时间:perf_counter() 返回一个CPU级别的精确时间计数值,单位为秒,由于这个计数值起点不准确,连续调用差值才有意义。
产生时间:slee(s) s拟休眠的时间,单位是秒,可以是浮点数
文本进度条
采用字符串方式打印可以动态变化的文本进度条
需要在一行中逐渐变化
开始
import time #引入库
scale=10 #文本进度条的大概宽度
print("---执行开始---") #标签
for i in range(scale+1):
a='*'*i
b='.'*(scale-i)
c=(i/scle)*100
print("{:^3.0f)%[{}->{}]".format(c,a,b))
time.slee(0.1) #定义了一个休眠时间
print("--执行结束---")
单行动感刷新
刷新:用后打印的字符覆盖之前的字符
不能换行:print()需要被控制
要能回退:打印后光标回退到之前的位置\r
import time
for i in range(101):
print("\r{:3}%".format(i),end="")#将光标停留在当前行
time.sleep(0.1)
(在命令行中写)
完整效果
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,'-'))
(在命令提示符中写)如果在idle中写的话不能实现覆盖
举一反三
运行时间较长的程序中增加进度条
在任何希望提高用户体验的用用中增加进度条