Mudando texto após ser 'printado'

3 respostas
Raphael_Vico

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

3 Respostas

wldomiciano

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.

peczenyj

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.

wldomiciano

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.

Criado 25 de outubro de 2018
Ultima resposta 25 de out. de 2018
Respostas 3
Participantes 3