这是我的目标:制作一个以问候语开头的小程序(基于文本),打印出自上次事件以来已经过多长时间的计时器,然后打印事件的计时器.我已经使用这段代码开始尝试找出一个计时器,但我的第一个问题是计时器在每一个新的秒钟上不断重复新的一行.我如何让它停下来?此外,这个计时器似乎落后于时钟上的实际秒数.
import os
import time
s=0
m=0
while s<=60:
os.system('cls')
print (m, 'Minutes', s, 'Seconds')
time.sleep(1)
s+=1
if s==60:
m+=1
s=0
Run Code Online (Sandbox Code Playgroud)
我会用这样的东西:
import time
import sys
time_start = time.time()
seconds = 0
minutes = 0
while True:
try:
sys.stdout.write("\r{minutes} Minutes {seconds} Seconds".format(minutes=minutes, seconds=seconds))
sys.stdout.flush()
time.sleep(1)
seconds = int(time.time() - time_start) - minutes * 60
if seconds >= 60:
minutes += 1
seconds = 0
except KeyboardInterrupt, e:
break
Run Code Online (Sandbox Code Playgroud)
在这里,我依靠实际的时间模块,而不仅仅是睡眠增量,因为睡眠不会恰好是1秒.
此外,你可以使用print而不是sys.stdout.write,但你几乎肯定还需要sys.stdout.flush.
喜欢:
print ("\r{minutes} Minutes {seconds} Seconds".format(minutes=minutes, seconds=seconds)),
Run Code Online (Sandbox Code Playgroud)
请注意尾随逗号,以便不打印新行.
| 归档时间: |
|
| 查看次数: |
64093 次 |
| 最近记录: |