2014-11-21 2 views
-1

Если у меня есть строка, которая говорит следующее:Изменить строку после того, как она была напечатана

3 guesses left 

После заявления печати для этого у меня есть цикл, который позволяет пользователю ввести что-то и удалить одну из догадок каждого время, например

guesses = 3 

while guesses > 0: 
    guess = input("Have a guess: ") 
    guesses -= 1 

После последней строки кода, как я могу сделать это продолжать перебирать время цикла, но вместо того, чтобы печатать дополнительные строки, которые говорят 2 guesses left, 1 guess left, 0 guess left, просто измените число в первой строке?

+0

Возможный дубликат: http://stackoverflow.com/questions/517127/how-do-write-output-in-same-place-on-the-consol е – jaynp

ответ

0

Вы можете использовать sys.stdout.write с \r. \r кладет обратно в начало строки:

демо:

>>> guess = 3 
>>> while guess != 0: 
...  sys.stdout.write("\rguess left " + str(guess-1)) 
...  sys.stdout.flush() 
...  time.sleep(2) 
...  guess = guess -1 

или вы можете очистить весь экран до следующего печати:

print "\033c"  # python 2x 
print("\033c")  # python 3x 

вы также можете использовать UNIX и окна команду:

import os 
os.system('clear') # unix 
os.system('cls') # windows 
Смежные вопросы