程序中os.system('cls')运行之后没有效果,应该怎么修改程序?

 

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