Python倒数计时器包括Extra Zero

时间:2015-03-26 19:04:03

标签: python timer clock

我正在尝试制作一个计时器,一旦输入任何分钟数,窗口将以mm:ss格式倒计时。但是,当输入超过10分钟的时间时,在10分钟以上的任何时间开始时分钟数低于10分钟时,计时器结束时会出现额外的零点。我似乎无法弄清楚如何摆脱它,并希望另一组眼睛看看我是否犯了任何愚蠢的错误。

import time, sys, os
os.system("cls")
def countdown_screen(endtime):
    sectot=int(endtime)*60
    print("*******************************************************************************")
    for i in range(0,sectot):
        mins=(int(sectot)/60)
        secs=sectot-(mins*60)
        if secs<10:
            secs="0"+str(secs)
        if mins==10 and secs==0:
            secs=secs-"0"
        sys.stdout.write("\rSystem standby for: %s:%s" %(mins,secs))
        sys.stdout.flush()
        time.sleep(1)
        sectot=sectot-1     
    sys.stdout.write("\rSystem standby complete.")
    print""
endtime=raw_input("mins:")
countdown_screen(endtime)

1 个答案:

答案 0 :(得分:1)

您正在将secs重载为int然后是字符串,这肯定是个问题:

    if secs<10:
        secs="0"+str(secs)
    if mins==10 and secs==0:
        secs=secs-"0"

但是你应该简化你的整个方法,让字符串格式化为你做的工作:

import time, sys, os
os.system("cls")
def countdown_screen(endtime):
    sectot=int(endtime)*60
    print("*******************************************************************************")
    for i in range(0,sectot):
        sys.stdout.write("\rSystem standby for: %02d:%02d" % (sectot/60,sectot%60))
        sys.stdout.flush()
        time.sleep(1)
        sectot=sectot-1     
    sys.stdout.write("\rSystem standby complete.")
    print""
endtime=raw_input("mins:")
countdown_screen(endtime)