Замена символа в функции печати без использования .replace - PullRequest
1 голос
/ 20 февраля 2020

Я новичок в программировании и у меня есть вопрос о замене текста в функции печати на Python.

В моем текущем коде для обратного отсчета, если вы введете 5, будет напечатано "5431 GO ", как я могу получить его, чтобы заменить предыдущий символ? Я делал это раньше, но я забыл, как, я думаю, это было связано с "\ r"?

import time

countdown_time = int(input("Enter amount of seconds to count down from: "))
while countdown_time >= 0:
    if countdown_time == 0:
        print("GO")
        break
    else:
        print(countdown_time, end="")
        countdown_time -= 1
        time.sleep(.5)

Ответы [ 2 ]

3 голосов
/ 20 февраля 2020

Точно так же, как вы заявили, \r означает, что он будет перемещать указатель на начало строки, просто используйте его в вашем print выражении, например:

import time

countdown_time = int(input("Enter amount of seconds to count down from: "))
while countdown_time >= 0:
    if countdown_time == 0:
        print("GO")
        break
    else:
        print(countdown_time, end="\r")
        countdown_time -= 1
        time.sleep(.5)
0 голосов
/ 20 февраля 2020

Я использую эту функцию для обновления текста в процентах. Просто позвоните update_percentage вместо print.

def update_percentage(row_string):
    row_string = str(row_string)

    # clear previous text
    sys.stdout.write("\r")
    sys.stdout.write(" " * len(row_string))

    # reposition at the start of the row
    sys.stdout.write("\r")
    sys.stdout.write(row_string)
    sys.stdout.flush()
...