简体   繁体   中英

How to display a countdown on a single line in the console?

I need a countdown timer in python but without skipping line.

from time import sleep

for c in range (4,0,-1):
   print(c)
   sleep(1)

this code makes the countdown by jumping the lines ex:

print('3')
print('2')
print('1')

I need that in the same line show first 3, then 2, last 1. ex:

print('3,' + sleep(1) + '2,' + sleep(1) + '1.')

If you want delete previous number in console, you can do like

from time import sleep
import os

for i in range(4, 0, -1):
    os.system("cls")
    print(i)
    sleep(1)

this.

or you can use end parameter in print function.

from time import sleep

for i in range(4, 0, -1):
    print(i, end = '\r')
    sleep(1)

like this.

from time import sleep

for i in range(4, 0, -1):
    print(i, end = ' \r')
    sleep(1)

Note the space before '\r'.

When counting down from 10 to 9, 90 is displayed instead of 9 or from 100 to 99, 990 is displayed instead of 99 when no space is added before '\r'.

Adding space before '\r' prevents the extra digit from being displayed.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM