A Maneira Canônica de Verificar o Tipo em Python
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.
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.
À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.
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)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_functionApó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()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:
printIsso imprimirá números de 0 a 9 na mesma linha, separados por espaços.
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 "." * 10TestarIsso irá printar dez pontos consecutivamente.
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.
Aprenda a programar e desenvolva soluções para o seu trabalho com Python para alcançar novas oportunidades profissionais. Aqui na Asimov você encontra:
Comentários
30xp