Como escrever strings multilinhas em Python (aspas triplas e junções)

Aprenda as melhores maneiras de escrever strings multilinhas em Python. Explore aspas triplas, concatenação de parênteses, métodos de junção de nova linha e controles de formato.

Experimente esta solução no Editor

Visão geral

Ao escrever blocos de texto dentro de seu aplicativo, como consultas SQL, modelos HTML, instruções CLI ou mensagens de depuração longas, você geralmente precisará abranger valores de string em várias linhas. Python oferece diversas maneiras de definir strings multilinhas, cada uma com implicações de formatação distintas.

A maneira mais direta e comum de escrever uma string multilinha é usando a sintaxe de aspas triplas (`'''` ou `"""`). Strings com aspas triplas preservam todas as entradas de caracteres literalmente, incluindo novas linhas brutas e recuo. Isso torna a formatação altamente visual, mas tem uma desvantagem: quaisquer tabulações ou espaços iniciais usados para alinhar o código dentro de loops ou classes aninhados se tornarão parte do valor real da string.

Para definir uma string multilinha que abranja visualmente várias linhas em seu código-fonte, mas seja compilada em uma única linha longa (ou não capture espaços em branco de recuo de código), você pode colocar strings padrão entre aspas simples entre parênteses. Python concatena automaticamente strings literais adjacentes entre parênteses, tornando seu código limpo e altamente legível.

Saída de código e execução

Este script demonstra a escrita de texto multilinha usando aspas triplas, concatenação de strings entre parênteses e recuos limpos.

multiline_strings.py
Experimente no Editor
# 1. Triple Quote Syntax (preserves all newlines and indentation)
sql_query = """SELECT id, username, email
FROM users
WHERE active = True
ORDER BY id DESC;"""

print("--- Triple Quotes Query ---")
print(sql_query)

# 2. Parentheses Concatenation (splits code line, compiles into single line)
long_message = (
    "This is a long message that we split "
    "across multiple lines in our editor, "
    "but it compiles into a single text block."
)
print("\n--- Parentheses Concatenation ---")
print(long_message)

# 3. Joining list elements for clean line breaks
lines = [
    "First instruction line.",
    "Second instruction line.",
    "Third instruction line."
]
joined_text = "\n".join(lines)
print("\n--- Joined Lines ---")
print(joined_text)
Saída terminal
--- Triple Quotes Query ---
SELECT id, username, email
FROM users
WHERE active = True
ORDER BY id DESC;

--- Parentheses Concatenation ---
This is a long message that we split across multiple lines in our editor, but it compiles into a single text block.

--- Joined Lines ---
First instruction line.
Second instruction line.
Third instruction line.

Implementação passo a passo

  • Use aspas triplas (''' ou """) para escrever blocos de texto longos que preservam novas linhas literais.
  • Coloque strings consecutivas entre parênteses ( ) sem vírgulas para dividir o código visualmente sem adicionar novas linhas à saída.
  • Use textwrap.dedent() ao trabalhar com aspas triplas dentro de classes ou funções para limpar o recuo inicial.

Perguntas frequentes

Como faço para remover o recuo inicial de uma string aninhada entre aspas triplas?

Importe o módulo textwrap integrado e passe a string para textwrap.dedent(text) para limpar os espaços iniciais.

Qual é a diferença entre aspas triplas simples e duplas?

Não há diferença funcional entre ''' e """. Escolha uma convenção e siga-a de forma consistente em todo o seu projeto.

Tópicos Relacionados

Recursos Python recomendados

Expanda seu conhecimento com tutoriais interativos relacionados, folhas de dicas e comparações de código.