Countdown Clock: 01:05

后端 未结 5 2137
长情又很酷
长情又很酷 2020-12-13 07:31

How can I create a countdown clock in Python that looks like 00:00 (min & sec) which is on a line of its own. Every time it decreases by one actual second then

相关标签:
5条回答
  • 2020-12-13 07:44

    Here is the code which counts from 01:05 to 00:00 in MM:SS format.

    Python 3 :

    import time
    def countdown(p,q):
        i=p
        j=q
        k=0
        while True:
            if(j==-1):
                j=59
                i -=1
            if(j > 9):  
                print(str(k)+str(i)+":"+str(j), end="\r")
            else:
                print(str(k)+str(i)+":"+str(k)+str(j), end="\r")
            time.sleep(1)
            j -= 1
            if(i==0 and j==-1):
                break
        if(i==0 and j==-1):
            print("Goodbye!", end="\r")
            time.sleep(1)
    countdown(1,5) #countdown(min,sec)
    

    Python 2 :

    import time
    def countdown(p,q):
        i=p
        j=q
        k=0
        while True:
            if(j==-1):
                j=59
                i -=1
            if(j > 9):  
                print "\r"+str(k)+str(i)+":"+str(j),
            else:
                print "\r"+str(k)+str(i)+":"+str(k)+str(j),
            time.sleep(1)
            j -= 1
            if(i==0 and j==-1):
                break
        if(i==0 and j==-1):
            print "\rGoodbye!"
            time.sleep(1)
    countdown(1,5) #countdown(min,sec)
    
    0 讨论(0)
  • 2020-12-13 07:45
    import time
    import sys
    
    print(' ')
    print('Countdown Timer, By Adam Gay')
    print(' ')
    print('Instructions: Input time to countdown from.')
    print(' ')
    
    c=':'
    
    hourz=input('Hours: ')
    minz=input('Minutes: ')
    secz=input('Seconds: ')
    print(' ')
    
    hour=int(hourz)
    min=int(minz)
    sec=int(secz)
    
    while hour > -1:
        while min > -1:
            while sec > 0:
                sec=sec-1
                time.sleep(1)
                sec1 = ('%02.f' % sec)  # format
                min1 = ('%02.f' % min)
                hour1 = ('%02.f' % hour)
                sys.stdout.write('\r' + str(hour1) + c + str(min1) + c + str(sec1))
    
            min=min-1
            sec=60
        hour=hour-1
        min=59
    
    Print('Countdown Complete.')
    time.sleep(30)
    
    0 讨论(0)
  • 2020-12-13 07:56

    For the simplicity, this code is able to say you how long it takes until the next desired time, which might be whatever you want to do in your program. In your case, this is a kind of countdown timer.

    from datetime import datetime
    
    x=datetime.today()
    y=x.replace(day=x.day+1, hour=3, minute=1, second=0, microsecond=0)
    delta_t=y-x
    secs=delta_t.seconds+1
    
    second = (secs % 60)
    minut = (secs / 60) % 60
    hour = (secs / 3600)
    print ("Seconds: %s " % (second))
    print ("Minute: %s " % (minut))
    print ("Hour: %s" % (hour))
    
    print ("Time is %s:%s:%s" % (hour, minut, second))
    

    Then, output is as follows:

    Seconds: 50 
    Minute: 32 
    Hour: 12
    Time is 12:32:50
    

    Good luck with your coding.

    0 讨论(0)
  • 2020-12-13 07:56

    Maybe this link will help: Making a Timer in Python 3

    And look at my answer, it is same for your too!

    Anyway, here is answer:

    import time
    import os
    hour = int(input('Enter any amount of hours you want -+==> '))
    minute = int(input('Enter any amount of minutes you want -+==> '))
    second = int(input('Enter any amount of seconds you want -+==> '))
    time = hour*10800 + minute*3600 + second*60
    print('{}:{}:{}'.format(hour,minute,second))
    while time > 0:
       time = time - 1
       seconds = (time // 60) % 60
       minutes = (time // 3600)
       hours = (time // 10800)
       print('Time Left -+==> ',hours,':',minutes,':',seconds,)
       os.system("CLS")
    if time == 0:
       print('Time Is Over!') 
    

    Input:

    Enter any amount of hours you want -+==> 0
    Enter any amount of minutes you want -+==> 0 
    Enter any amount of seconds you want -+==> 10
    

    Output # All are on the same line

    Time Left -+==> 0:0:10
    Time Left -+==> 0:0:9
    Time Left -+==> 0:0:8
    Time Left -+==> 0:0:7
    Time Left -+==> 0:0:6
    Time Left -+==> 0:0:5
    Time Left -+==> 0:0:4
    Time Left -+==> 0:0:3
    Time Left -+==> 0:0:2
    Time Left -+==> 0:0:1
    Time Left -+==> 0:0:0
    Time Is Over!
    
    0 讨论(0)
  • 2020-12-13 07:59

    Apart from formatting your time as minutes and seconds, you'll need to print a carriage return. Set end to \r:

    import time
    
    def countdown(t):
        while t:
            mins, secs = divmod(t, 60)
            timeformat = '{:02d}:{:02d}'.format(mins, secs)
            print(timeformat, end='\r')
            time.sleep(1)
            t -= 1
        print('Goodbye!\n\n\n\n\n')
    

    This ensures that the next print overwrites the last line printed:

    countdown

    0 讨论(0)
提交回复
热议问题