Comment puis-je créer une horloge de compte à rebours en Python qui ressemble à 00:00 (min & sec) et qui se trouve sur une ligne distincte. Chaque fois qu'il diminue d'une réelle seconde, l'ancien minuteur doit être remplacé sur sa ligne par un nouveau minuteur inférieur d'une seconde: 01:00
devient 00:59
et frappe en fait 00:00
.
Voici une minuterie de base avec laquelle j'ai commencé mais que je veux transformer:
def countdown(t):
import time
print('This window will remain open for 3 more seconds...')
while t >= 0:
print(t, end='...')
time.sleep(1)
t -= 1
print('Goodbye! \n \n \n \n \n')
t=3
Je veux aussi m'assurer que tout ce qui suit le Goodbye!
(ce qui serait probablement en dehors de la fonction) sera sur sa propre ligne.
RÉSULTAT: 3...2...1...0...Goodbye!
Je sais que cela ressemble à d’autres questions relatives au compte à rebours, mais j’estime qu’il a sa propre tournure.
Outre le formatage de votre temps en minutes et en secondes, vous devez imprimer un retour chariot. Définissez end
sur \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')
Cela garantit que l’impression next écrase la dernière ligne imprimée:
Voici le code qui compte de 01h05 à 00h00 au format MM: SS.
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)
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)
Pour la simplicité, ce code est capable de vous dire combien de temps cela prend jusqu'au prochain moment souhaité, ce qui peut être ce que vous voulez faire dans votre programme. Dans votre cas, il s’agit d’une sorte de compte à rebours.
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))
Ensuite, la sortie est la suivante:
Seconds: 50
Minute: 32
Hour: 12
Time is 12:32:50
Bonne chance avec votre codage.
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)