
Le sequenze di escape in Python
Le sequenze di escape in Python sono un insieme di caratteri che rappresentano un carattere speciale o un comando particolare inserito all'interno di una stringa di testo.
A cosa servono le sequenze di escape? Sono utilizzate per inserire caratteri che non possono essere digitati direttamente, come ad esempio il ritorno a capo o una tabulazione. Ad esempio, i caratteri di controllo Ascii che non sono associati a un simbolo grafico (es. \n, \t.), alcuni caratteri stampabili (es. \', \", \\), sequenze di carattere Unicode, ecc.
In Python, una sequenza di escape inizia sempre con un backslash (`\`) seguito da uno o più caratteri.
Ad esempio, il comando di nuova linea si scrive \n
\n
Puoi aggiungere questa sequenza in una stringa di testo qualsiasi
myVar = "Hello\nWorld"
Quando stampi la stringa Python, la funzione print() interpreta la sequenza di escape \n ed esegue il comando associato (newline) inserendo un'interruzione di linea tra le due parole.
print(myVar)
Hello
World
Ricorda che malgrado occupi due o più posizioni, una sequenza di escape viene contata come un unico carattere.
Ad esempio, definisci una stringa con due caratteri e due sequenze di escape
myVar = "Hi\n\n"
Apparentemente questa stringa sembra essere composta da 6 caratteri.
In realtà, se utilizzi la funzione len() ne conta solo 4 perché ogni sequenza di escape \n viene contata come un unico carattere.
print(len(myVar))
4
E' un aspetto da tenere bene a mente quando si elaborano le stringhe in Python.
Altre sequenze di escape
Ovviamente non c'è solo \n come sequenza di escape.
Ecco alcune sequenze di escape utilizzate più di frequente nella programmazione.
Sequenza di escape | Descrizione |
---|---|
\\ | Backslash |
\' | Apice |
\" | Doppio apice |
\a | Segnale sonoro del PC |
\b | Elimina l'ultimo carattere |
\f | Nuova pagina |
\n | Nuova linea |
\r | Ritorno carrello (Carriage Return) |
\t | Tabulazione orizzontale (TAB) |
\v | Tabulazione verticale |
Quando Usarle le sequenze di escape?
Le sequenze di escape hanno diverse applicazioni pratiche.
Sono utili per stampare le stringhe su più linee, inserire tabulazioni o spaziature precise, gestire dei percorsi di file nei sistemi Windows, inserire caratteri speciali non stampabili direttamente, ecc.
Ad esempio, se vuoi inserire un apice dentro una stringa potresti avere difficoltà se la stringa è racchiusa tra due apici, perché la presenza dell'apice intermedio termina la stringa.
Per evitare questo problema puoi inserire l'apice interno come sequenza di escape \'
print('Questa è l\'arte')
Questa è l'arte
Un altro problema abbastanza comune è l'inserimento del backslash in una stringa, perché Python la interpreta come l'inizio di una sequenza di escape.
Per inserire la barra del backslash come carattere, puoi usare la sequenza di escape \\.
print("C:\\Programmi\\Python")
In questo caso Python considera la seconda backslash della sequenza \\ come un carattere anziché come un comando.
C:\Programmi\Python
In alternativa, se non vuoi che Python interpreti i backslash come inizio di una sequenza di escape, puoi usare una stringa letterale (raw string) anteponendo `r` o `R` alla stringa stessa.
print(r"C:\Utenti\Documento")
C:\Utenti\Documento
Puoi usare le sequenze di escape anche per inserire qualsiasi carattere tramite il suo codice Unicode esadecimale
Ad esempio, per inserire il simbolo di un cuore in una stringa puoi digitare \u2764
print("Questo è un cuore \u2764")
La stringa viene visualizzata in questo modo
Questo è un cuore ❤
Ricorda che l'uso efficace delle sequenze di escape può rendere il tuo codice più leggibile e gestibile, specialmente quando si lavora con testi complessi o percorsi di file.
Le sequenze di escape non funzionano nelle stringhe di byte. Nelle stringhe di byte le sequenze di controllo non sono interpretate, né eseguite dal linguaggio Python. Quindi, puoi inserirle solo nelle stringhe di testo.
print(b"Hi\n\n")
Hi\n\n