Python制作计时器
原理
在Python中可以通过字符输出的形式来显示时间,同时也可以作为计时器
但是这种方法看起来很傻而且看得人眼花缭乱怎么办呢?
但是如果我想让每次输出的结果都在同一行中,达到电子表一样的动态计时显示功能该如何做呢?
Python里有一个简单的覆盖字符"\r",只需要将新显示的时间替换掉原来的,看起来就在同一个地方显示啦。像下面这种
看起来只输出了一行,其实它和上面的结果一样,只是每一秒都会更新时间。(这个功能在以后的代码输出调试时也是非常实用方便优雅的)
上代码
import time
while True:
time.sleep(1)
print("\r", time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()), end="")
这样只需要短短四行代码就可以让你的代码在输出框里不断更新啦。
小提示
1、在这里其实只是“\r”把原来的字符覆盖清空了,然后把新的结果输出在了原来这一行。
2、因为需要是在同一行,所以我们在结尾需要更改一下print()函数中的默认参数,end="",这样就能确保覆盖的时候在同一行了。
3、既然是为了显示在同一行,那么将end参数改成其他字符或者空字符可以不可以呢?答案是肯定的,例如end=" "或者其他不影响显示的都可以啦!
end
说好的计时器和进度条呢?
只需要把你要显示的东西改成【========-----------】这些可以用来提示进度的东西就好啦,同理改成数字也可以,因为重点就是让它显示在同一行中,至于具体的进度呢,可以放在for循环里面,每次的取值除于总值,再换成百分制就好啦,再动动小脑筋,就可以实现这个简单的功能了
如果是新人开始学Python,一定要试试亲手写这个程序,改成自己想要的形式,因为可以从里面学到非常多的东西是真的。