import time
import os
def main():
while True:
localtime = time.localtime()
hour = int(localtime[3])
minute = int(localtime[4])
second = int(localtime[5])
print('%02d:%02d:%02d' % (hour, minute, second))
time.sleep(1)
os.system('cls')
main()
想制作一个简易的数字时钟,但是运行之后其中os.system('cls')写与不写效果一样,而且和预想效果不一样,求解。
题主的代码没有问题,只是运行方式不正确。cls是操作系统的清屏命令,需要在命令行窗口下运行代码才能被正确执行。不过,这段代码运行效果不好,屏幕会有闪烁,且累计误差会导致某一秒显示缺失。其实,print('\r') 可以退回到行首,借助于 '\r',可以实现整行覆盖式的打印,不必使用cls命令。下面的代码无闪烁,且误差最大不会超过0.1秒钟。
import time
def clock():
while True:
t = time.localtime()
print('\r%02d:%02d:%02d'%(*t[3:6],), end='', flush=True)
time.sleep(0.1)
clock()
os.system('cls'),改为system('cls')
将清屏语句os.system('cls')放在while循环中的第一行,每次在显示时间之前清屏一次,这样看是不是你要的效果。
您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!
速戳参与调研>>>https://t.csdnimg.cn/Kf0y