Ao trabalhar com Python, você pode se deparar com uma situação em que precisa printar vários itens consecutivamente sem adicionar automaticamente uma nova linha ou espaço entre eles. Isso é um requisito comum para formatar a saída de uma maneira específica. Neste post, vamos explorar como alcançar isso usando a função print
do Python.
Imprimindo Sem Nova Linha
No Python 3, a função print
vem com um recurso muito útil que permite controlar o que é impresso no final da instrução. Por padrão, print
adiciona um caractere de nova linha (\n
) após cada chamada, mas você pode mudar esse comportamento com o parâmetro end
.
Veja como você pode imprimir pontos consecutivamente sem uma nova linha:
print('.', end='')
print('.', end='')
print('.', end='')
print('.', end='')
Esse código produzirá ....
sem nenhuma nova linha entre eles.
Printar Sem Espaços Entre Argumentos
Às vezes, você pode querer printar vários argumentos sem espaços entre eles. A função print
tem outro parâmetro chamado sep
, que define o separador entre os argumentos. Por padrão, sep
é um caractere de espaço, mas você pode definí-lo como uma string vazia para remover os espaços:
print('a', 'b', 'c', sep='')
TestarIsso resultará na saída abc
sem espaços.
Esvaziando o Buffer de Saída
Em alguns casos, especialmente quando você está lidando com dados em tempo real ou um fluxo lento, você pode precisar garantir que a saída seja esvaziada imediatamente. Você pode fazer isso definindo o parâmetro flush
como True
:
print('.', end='', flush=True)
Compatibilidade com Python 2
Se você está trabalhando com Python 2.6 ou 2.7, ainda pode imprimir sem uma nova linha ou espaço. Você pode importar a função print
do Python 3:
from __future__ import print_function
Após essa importação, você pode usar os mesmos parâmetros end
e sep
como no Python 3. No entanto, a palavra-chave flush
não está disponível no Python 2.
Alternativamente, você pode usar sys.stdout.write()
:
import sys
sys.stdout.write('.')
E para esvaziar a saída:
sys.stdout.flush()
Usando Vírgulas no Python 2
Nas versões anteriores do Python, você pode simplesmente adicionar uma vírgula no final da instrução de impressão para evitar a nova linha:
for i in range(10):
print i,
else:
print
Isso imprimirá números de 0 a 9 na mesma linha, separados por espaços.
Substituição ao Estilo Printf
Para aqueles que procuram substituição ao estilo printf, o Python oferece uma maneira de formatar strings usando o operador %
:
strings = ["one", "two", "three"]
for i in range(3):
print "Item %d: %s" % (i, strings[i])
E se você quiser imprimir um caractere várias vezes, você pode multiplicar uma string:
print "." * 10
TestarIsso irá printar dez pontos consecutivamente.
Resumo
Neste post, cobrimos como printar itens em Python sem adicionar automaticamente uma nova linha ou espaço. Usando os parâmetros end
e sep
na função print
, você pode controlar o formato da saída. Lembre-se de usar flush=True
se precisar esvaziar o buffer de saída imediatamente. Para usuários do Python 2, importar a função print
do Python 3 ou usar sys.stdout.write()
são opções viáveis. Com essas técnicas, você pode formatar sua saída exatamente da maneira que precisa.
Cursos de programação gratuitos com certificado
Aprenda a programar e desenvolva soluções para o seu trabalho com Python para alcançar novas oportunidades profissionais. Aqui na Asimov você encontra:
- Conteúdos gratuitos
- Projetos práticos
- Certificados
- +20 mil alunos e comunidade exclusiva
- Materiais didáticos e download de código
Comentários