Le stringhe in Python

Come usare le stringhe nel linguaggio python

Per assegnare una stringa a una variabile nel linguaggio python posso usare sia una coppia di virgolette che di apici.

nome="Andrea"
cognome='Minini'

Questa doppia possibilità di assegnazione è molto utile, perché mi permette di gestire gli apici (') e le virgolette (") come caratteri normali anche senza usare lo slash (\).

Cos'è una stringa? E' un oggetto composto da caratteri alfanumerici ( lettere, numeri, spazi, caratteri speciali, ecc. ).

Come inserire i caratteri speciali nelle stringhe

Alcuni caratteri e simboli sono detti "speciali" perché hanno anche delle funzionalità, oltre a essere un carattere.

Un esempio di carattere speciale. Le virgolette " sono un carattere ma hanno anche la funzione di delimitare le stringhe. Quindi sono un carattere speciale.

Per inserire un carattere speciale dentro una stringa, aggiungo uno backslash \ prima del carattere.

Un esempio pratico

Voglio assegnare una stringa con le doppie virgolette, inserendo al suo interno delle virgolette come caratteri.

frase="il \"backslash\" è la barra dall'alto verso il basso"
print(frase)

L'output del programma è

il \"backslash\" è la barra dall'alto verso il basso

Se non usassi gli backslash, l'interprete python considererebbe le virgolette interne come chiusura e apertura della stringa, mandando in errore il programma.

Allo stesso modo posso trattare gli altri caratteri speciali come caratteri normali. Ad esempio l'apice (\').

cognome='Dell\'anno'
print(cognome)

Posso anche usare alcune lettere come caratteri speciali per introdurre delle funzionalità nella stringa.

\n Line Feed (ritorno a capo)
\r Carriage Return (ritorno del carrello a sinistra)
\b Backspace (indietro di un carattere)
\t Tab (carattere di tabulazione)
\x inserimento di un carattere tramite il valore esadecimale del codice Ascii ( es. \x21 stampa il punto interrogativo ! )

Esempio

Questa stringa va a capo a metà testo.

stringa='questa stringa va a capo \n a metà testo'
print(stringa)

L'output del programma è il seguente:

questa stringa va a capo
a metà testo.

Come gestire apici e virgolette nelle stringhe

Il linguaggio python mi consente di gestire gli apici (') e le virgolette (") anche senza usare il backslash.

Posso assegnare una stringa con le doppie virgolette usando gli apici come caratteri normali, e viceversa.

Un esempio pratico

Quando utilizzo le doppie virgolette per assegnare una stringa, all'interno della stringa l'apice è considerato automaticamente come un carattere normale.

cognome="Dell'anno"
print(cognome)

Le doppie virgolette (") che racchiudono la stringa non sono stampate mentre l'apice (') viene visualizzato.

L'output del programma è il seguente:

Dell'anno

Viceversa, quando utilizzo gli apici per assegnare la stringa a una variabile, le virgolette all'interno sono considerate come carattere speciale.

frase='il linguaggio si chiama "Python" ed è molto facile'
print(frase)

L'output dello script è il seguente:

il linguaggio si chiama "Python" ed è molto facile

In questo caso, i doppi apici (') che racchiudono la stringa non sono stampati, mentre le virgolette (") sono visualizzate sullo schermo come un carattere qualsiasi.

L'assegnazione tramite tre apici

Per assegnare un valore alfanumerico senza preoccuparmi troppo degli apici o delle virgolette nel testo, posso anche usare la tecnica dei tre apici.

In questo caso i demarcatori sono tre apici all'inizio e alla fine della stringa.

stringa='''informazione alfanumerica'''

Nel testo posso esserci apici, doppi apici, virgolette, doppi virgolette. Sono automaticamente gestite come caratteri semplici.

Inoltre, un testo scritto con il triplo apici trasforma automaticamente il ritorno a capo del testo in \n.

Esempio

In questa stringa ho inserito un po' di tutto.

testo='''questo è un esempio con ' e " all'interno
senza che python vada in errore'''
print(testo)

L'output del programma è il seguente:

questo è un esempio con ' e " all'interno
senza che python vada in errore

Differenza tra stringhe e liste

Le stringhe non vanno gestite come liste nel linguaggio Python, perché ci sono alcune somiglianze ma anche molte differenze.

Come una lista anche una stringa è un insieme ordinato di elementi.

Un esempio pratico

In questo esempio, nella prima assegno una stringa alla variabile nome.

Nella seconda riga suo le parentesi quadre per visualizzare il quarto carattere della stringa.

nome="Andrea"
print(nome[3])

L'output del programma è il seguente:

r

In questo esempio ho trattato la stringa come una lista.

Tuttavia non è sempre così.

Cosa distingue una stringa da una lista?

Mentre una lista mi permette di modificare ogni singolo elemento [n], con la stringa non posso farlo.

Ad esempio, non potrei modificare soltanto la quarta posizione della stringa.

nome[3]="t"

Questa operazione va in errore. Non si può fare.

Per modificare una posizione interna della stringa, devo necessariamente riassegnare un valore a tutta la variabile.

nome="qualsiasi altro valore"

Per inserire un carattere all'interno di una stringa, devo concatenare le due parti iniziali con la stringa da inserire.

Esempio

nome='an-rea'
s = nome[:2] + 'd' + nome[3:]
print(s)

L'output dello script è il seguente

Andrea

E così via.

 


 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin
knowledge base

Le stringhe in Python

Faq