Come scrivere stringhe multilinea in Python (virgolette triple e join)

Scopri i modi migliori per scrivere stringhe multilinea in Python. Esplora le virgolette triple, la concatenazione di parentesi, i metodi di newline join e i controlli di formato.

Prova questa soluzione nell'editor

Panoramica

Quando scrivi blocchi di testo all'interno della tua applicazione, come query SQL, modelli HTML, istruzioni CLI o lunghi messaggi di debug, spesso dovrai distribuire valori di stringa su più righe. Python offre diversi modi per definire stringhe multilinea, ciascuno con implicazioni di formattazione distinte.

Il modo più diretto e comune per scrivere una stringa su più righe è utilizzare la sintassi con virgolette triple (`'''` o `"""`). Le stringhe con virgolette triple preservano letteralmente tutti i caratteri immessi, inclusi i ritorni a capo e i rientri. Ciò rende la formattazione altamente visiva ma presenta uno svantaggio: eventuali tabulazioni o spazi iniziali utilizzati per allineare il codice all'interno di cicli o classi nidificati diventeranno parte del valore effettivo della stringa.

Per definire una stringa su più righe che si estende visivamente su più righe nel codice sorgente ma è compilata in un'unica riga lunga (o non acquisisce gli spazi bianchi del rientro del codice), è possibile racchiudere tra parentesi le stringhe standard tra virgolette singole. Python concatena automaticamente le stringhe letterali adiacenti all'interno delle parentesi, rendendo il tuo codice pulito e altamente leggibile.

Codice e output di esecuzione

Questo script dimostra la scrittura di testo su più righe utilizzando virgolette triple, concatenazione di stringhe tra parentesi e rientri puliti.

multiline_strings.py
Prova nell'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)
Uscita terminale
--- 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.

Implementazione passo dopo passo

  • Utilizza le virgolette triple (''' o """) per scrivere blocchi di testo lunghi che preservino i ritorni a capo letterali.
  • Racchiudi stringhe consecutive tra parentesi ( ) senza virgole per dividere visivamente il codice senza aggiungere caratteri di fine riga all'output.
  • Utilizza textwrap.dedent() quando lavori con virgolette triple all'interno di classi o funzioni per ripulire il rientro iniziale.

Domande frequenti

Come posso rimuovere il rientro iniziale da una stringa nidificata con virgolette triple?

Importa il modulo textwrap integrato e passa la stringa a textwrap.dedent(testo) per ripulire gli spazi iniziali.

Qual è la differenza tra virgolette singole e doppie triple?

Non esiste alcuna differenza funzionale tra ''' e """. Scegli una convenzione e attieniti ad essa in modo coerente in tutto il progetto.

Argomenti correlati

Risorse Python consigliate

Espandi le tue conoscenze con tutorial interattivi, foglietti illustrativi e confronti di codici correlati.