Как сделать обратный отсчет на одной линии - PullRequest
0 голосов
/ 30 января 2020

Я очень плохо знаком с кодированием. Прямо сейчас каждое число печатается на новой строке, но мне нужно, чтобы каждая часть последовательности печаталась одна за другой на одной и той же строке .. Пожалуйста, помогите!

import time
print ("Starting countdown... ")
for i in range (10,0,-1):
    print (i)
    time.sleep(1)
print ("Blast off!")

Ответы [ 4 ]

1 голос
/ 30 января 2020

Вы должны использовать end в своем заявлении на печать, как вы собираетесь его завершить. По умолчанию он стремится к новой строке (\ n), поэтому вам нужно явно определить окончание печати, как показано ниже:

import time
print ("Starting countdown... ")
for i in range (10,0,-1):
    print (i, end=" ")
    time.sleep(1)
print ("Blast off!")
0 голосов
/ 30 января 2020

https://docs.python.org/3/library/functions.html#print

print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)

In print () replace end = '\ n' до end = ''

import time
print ("Starting countdown... ")
for i in range (10,0,-1):
    print (i, end=" ")
    time.sleep(1)
print ("Blast off!")
0 голосов
/ 30 января 2020

Ниже кода будут печататься числа в одной строке с пробелом:

import time

print("Starting countdown... ")
for i in range(10, 0, -1):
    print(i, end=" ")
    time.sleep(1)
print()
print("Blast off!")

вывод:

Starting countdown... 
10 9 8 7 6 5 4 3 2 1 
Blast off!
0 голосов
/ 30 января 2020

Есть что-то, что называется Carriage Return, который перемещает курсор в начало текущей строки, не перемещая его в новую. Этот напечатан как "\ r".

Итак, просто замените ваш

print(i)

на

print("\r", i, end="")

Конец = "" необходим, потому что печать, по умолчанию, будет go на следующую строку, и вы не хотите этого.

...