Bom dia/tarde/noite
Tudo bom com vocês?
Estou fazendo uma contagem no Python
for i in range(10):
print(i)
sleep(1)
E de saída tenho:
> 0
> 1
> 2
> 3
> 4
> 5
> 6
> 7
> 8
> 9
Minha duvida é:
Como eu faria para esse print sempre sair na mesma posição, isto é, substituir o valor anterior que foi printado?
Obrigado pela atenção <3
Python 2 ou 3? No 3 da pra fazer assim:
from time import sleep
for i in range(10):
print(i, end='\r')
sleep(1)
Parece que pra fazer funcionar no 2, basta adicionar ao top do arquivo o seguinte:
from __future__ import print_function`
Só que não pude testar.
1 curtida
isso pode depender do terminal
o \r é o que chamamos de “retorno de carro” pq em terminais antigos do tipo “teletipo” - que eram basicamente uma maquina de escrever - vc mandava isso para o carro voltar ao começo da linha. essa é a a origem do newline “\r\n” do windows enquanto o mundo unix utiliza apenas “\n”
se o terminal que vc utiliza suporta sequencias de escape ANSI então vc pode deixar o terminal colorido, posicionar em qualquer lugar da tela, etc, apenas escrevendo determinados bytes junto do texto.
1 curtida
No caso vc está se referindo aos caracteres usados pra representar um nova linha, né?
Neste caso, ele não precisa de uma nova linha, precisa apenas que o carro retorne.
Testei, usando Python 3, no Terminal no Ubuntu e no CMD no Windows 10 e o resultado foi como esperado.