Pular para o conteúdo principal

Python Print Without New Line (Imprimir sem nova linha): O que você precisa saber

Controle a saída de impressão do Python para evitar novas linhas automáticas. Saiba como substituir o comportamento padrão da nova linha usando o parâmetro end, o módulo sys e a concatenação de strings.
Actualizado 22 de ago. de 2024  · 7 min de leitura

A função print() em Python é comumente usada para exibir a saída no console. Por padrão, a função print() do Python adiciona um caractere de nova linha no final de sua saída, fazendo com que a próxima saída comece em uma nova linha. 

Embora esse comportamento seja conveniente em alguns cenários, é importante entender os casos em que você deseja imprimir a saída sem adicionar uma nova linha. Neste tutorial, veremos como usar o parâmetro end, o módulo sys e a concatenação de strings para imprimir sem adicionar uma nova linha.

Antes de começarmos, recomendo que você faça o curso Introdução ao Python da DataCamp para aprender os conceitos básicos do Python para ciência e análise de dados. Além disso, confira nosso tutorial Um guia abrangente sobre como fazer quebras de linha no Python para saber mais sobre o comportamento oposto, que é usar \n para adicionar quebras de linha em cadeias de caracteres e declarações print().

Como imprimir sem uma nova linha em Python

Para imprimir sem adicionar uma nova linha no Python, você pode usar o parâmetro end na função print(). Se você definir o parâmetro end como uma cadeia de caracteres vazia, a saída continuará na mesma linha.

# Print without newline
print("Hello", end=" ")
print("World", end=" ")
Hello World

Observe que usamos duas funções print() aqui. Isso pode parecer incomum para os iniciantes, mas é uma técnica importante. Cada chamada print() ainda pode controlar sua própria saída usando o parâmetro end. Neste exemplo, a configuração end=” “ adiciona um espaço após cada string em vez de uma nova linha, permitindo que a segunda instrução print() continue na mesma linha.

Essa abordagem é particularmente útil quando você precisa imprimir várias partes de texto ou variáveis ao longo do tempo, mas deseja que todas elas apareçam na mesma linha com formatação específica (como espaços ou pontuação entre elas).

Por que imprimir sem uma nova linha em Python?

Em Python, imprimir sem uma nova linha refere-se ao controle da saída de modo que você não acrescente o caractere de nova linha \n após cada chamada print(). Entender como substituir esse comportamento é importante para criar saídas controladas. Veja a seguir alguns exemplos em que a saída contínua pode ser necessária.

  • Indicadores de progresso: As atualizações ou barras de progresso exigem saídas contínuas para monitoramento em tempo real.
  • Registro em log: O registro e o monitoramento também exigem a impressão em linhas contínuas para melhorar a legibilidade.
  • Aplicativos de console interativo: A exibição de algumas saídas do usuário na mesma linha melhora a experiência do usuário.

Se você estiver interessado em mudar o foco do controle da saída no console para entender como adicionar, gerenciar e remover caracteres de nova linha em textos e arquivos, acesse o site Python New Line: Métodos para formatação de código tutorial para técnicas e exemplos.

Imprimir sem nova linha: Python 2 vs. Python 3 Python 3

Para garantir a impressão da saída sem adicionar uma nova linha, você pode usar o parâmetro end ou outros métodos para substituir o comportamento padrão da função print()

Usando o parâmetro end em Python 3

Na versão 3 do Python, você deve incluir o parâmetro end em cada chamada da função print() para imprimir sem adicionar uma nova linha. Se você definir o parâmetro end como uma cadeia de caracteres vazia, a saída continuará na mesma linha, conforme mostrado no exemplo abaixo.

Você também pode definir o parâmetro end como um caractere ou uma cadeia de caracteres diferente. O exemplo abaixo demonstra como você pode modificar o parâmetro end em várias chamadas print() para controlar como a saída é formatada.

# Print without newline
print("Hello ", end="World!")
print(" Learn DataCamp Python tutorial.")
Hello World! Learn DataCamp Python tutorial.

O exemplo a seguir ilustra o uso do parâmetro end com uma cadeia de caracteres vazia para imprimir uma atualização de progresso sem uma nova linha. Neste exemplo, \r retorna o cursor para o início da linha, permitindo que a saída seja atualizada no local.

 # Import the time module, which provides time-related functions like sleep()
import time
# Loop over a range of numbers from 1 to 5 (inclusive)
for i in range(1, 6):
    # Print a loading message with a percentage that updates on the same line
    print(f"\rLoading... {i*20}%", end="")
    # Pause the execution for 1 second to simulate a loading delay
    time.sleep(1)
print("\nDone!")
Loading... 20%
Loading... 40%
Loading... 60%
Loading... 80%
Loading... 100%
Done!

Ao executar o código acima em um ambiente Python, você notará que a porcentagem de carregamento será atualizada a cada segundo na mesma linha, criando um indicador de progresso simples. Confira nosso artigo Writing Functions in Python se você precisar de ajuda para escrever funções, como a do exemplo acima.

Explorando o comportamento de novas linhas no Python 2

No Python 2, a instrução print é diferente e adiciona uma nova linha por padrão. Você pode adicionar uma vírgula no final do comando print para imprimir sem uma nova linha.

# Print without newline
print "Hello",
print "World"
Hello World

A desvantagem desse método é que um espaço extra é adicionado entre os itens impressos, ao contrário do Python 3, em que você pode controlar os caracteres a serem anexados na saída.

Outras técnicas do Python para imprimir sem nova linha

O Python oferece alguns métodos avançados para que você imprima sem uma nova linha. Esses métodos são usados principalmente para controlar a saída de impressões complexas.

Combinando os parâmetros end e sep

Os parâmetros end e sep podem ser usados juntos para uma formatação mais complexa. Nesses cenários, o parâmetro sep geralmente controla como vários itens são separados quando passados para a função print(). O exemplo abaixo separa as diferentes cadeias de caracteres por uma vírgula usando o parâmetro sep.

# Print without newline
print("Hello", "World", sep=", ", end="!")
Hello, World!

A combinação dos parâmetros end e sep é benéfica em cenários como a formatação de dados tabulares ou a criação de indicadores de progresso para melhorar a experiência do usuário por meio do aprimoramento da apresentação dos dados.

Usando o módulo sys

A função sys.stdout.write() do módulo sys oferece um método para imprimir sem acrescentar automaticamente uma nova linha. Esse método de impressão geralmente é importante quando é necessário um controle preciso da saída, como a criação de indicadores de progresso e a exibição de registros em tempo real.

O exemplo abaixo mostra como você pode imprimir sem uma nova linha usando o módulo sys. Observe que usamos a função sys.stdout.flush() para liberar manualmente o buffer de saída para garantir que o texto seja exibido imediatamente. Essa abordagem é importante para a exibição de loops e aplicativos em tempo real.

# Import the sys module
import sys
# Print without new line
sys.stdout.write("Hello, ")
sys.stdout.write("World!")
sys.stdout.flush()
Hello, World!

A concatenação de strings como uma abordagem alternativa

A concatenação de strings também pode ser usada para unir várias saídas antes da impressão, evitando a necessidade de vários comandos print() e garantindo que nenhuma nova linha seja adicionada entre as saídas. O exemplo abaixo mostra esse método de concatenação de strings para imprimir a saída em uma única instrução.

# Print without new line using string concatenation
output = "Hello" + " " + "World." + " Learn Python."
print(output)
Hello World. Learn Python.

Conclusão

A impressão sem uma nova linha é útil para exibir a saída em uma única linha contínua. Dependendo da versão do Python que você possui, o Python oferece diferentes métodos de impressão sem adicionar uma nova linha.

Se você deseja aprimorar suas habilidades em Python, recomendo que faça o curso Python Toolbox da DataCamp, que ensina iteradores e loops, o que foi mencionado neste artigo. Nossos programas de carreira Python Developer e Data Analyst with Python ajudarão você a se manter atualizado à medida que desenvolve habilidades práticas e relacionadas ao trabalho como cientista ou analista de dados.

Perguntas frequentes sobre Python

Como posso imprimir sem uma nova linha em Python?

Você pode incluir o parâmetro end com uma cadeia de caracteres vazia na função print() para imprimir sem adicionar uma nova linha.

Qual é o comportamento padrão da função print()?

Por padrão, a função print() adiciona uma nova linha após cada saída.

Você tem suporte para o método Python print without a new line no Python 2 e 3?

No Python 3, você pode usar o parâmetro end na função print() para imprimir sem uma nova linha. No Python 2, você deve adicionar uma vírgula após a instrução print para imprimir sem uma nova linha.

Por que recebo um espaço extra na saída depois de usar o separador de vírgula no Python 2?

No Python 2, um espaço extra é adicionado por padrão entre os itens impressos após você usar a vírgula para imprimir sem uma nova linha. Recomendo que você use outros métodos alternativos para controlar os caracteres anexados na saída.

A impressão sem uma nova linha afeta o desempenho?

A impressão sem uma nova linha tem um impacto mínimo no desempenho. Você pode usar o sys.stdout.write() do módulo sys para melhorar o desempenho ao lidar com dados grandes.

Temas

Aprenda Python com a DataCamp

curso

Python Toolbox

4 hr
276.9K
Continue to build your modern Data Science skills by learning about iterators and list comprehensions.
Ver DetalhesRight Arrow
Iniciar Curso
Ver maisRight Arrow
Relacionado

tutorial

Python New Line: Métodos para formatação de código

Descubra como usar \n para inserir quebras de linha em cadeias de caracteres e instruções print(). Use o parâmetro end para manter a saída em uma única linha. Aprimore suas habilidades de manipulação de arquivos com o os.linesep para gerenciar texto em diferentes sistemas.
Samuel Shaibu's photo

Samuel Shaibu

8 min

tutorial

Função Python Print()

Saiba como você pode aproveitar os recursos de uma simples função Python Print de várias maneiras com a ajuda de exemplos.
Aditya Sharma's photo

Aditya Sharma

10 min

tutorial

Formatação de f-string em Python

Saiba mais sobre a técnica de formatação f-string no Python 3.6. Neste tutorial, você verá as vantagens que ele oferece e verá alguns exemplos de casos de uso.
Hafeezul Kareem Shaik's photo

Hafeezul Kareem Shaik

5 min

tutorial

Tutorial de strings em Python

Neste tutorial, você aprenderá tudo sobre as cadeias de caracteres do Python: fatiamento e encadeamento, manipulação e formatação com a classe Formatter, cadeias de caracteres f, modelos e muito mais!
Sejal Jaiswal's photo

Sejal Jaiswal

16 min

tutorial

Tutorial de como executar scripts Python

Saiba como executar um script Python a partir da linha de comando e também como fornecer argumentos de linha de comando ao seu script.
Aditya Sharma's photo

Aditya Sharma

10 min

tutorial

Como aparar uma cadeia de caracteres em Python: Três métodos diferentes

Aprenda os fundamentos do corte de caracteres à esquerda e à direita de uma string em Python.
Adel Nehme's photo

Adel Nehme

5 min

See MoreSee More