Home / Blog /

Python string: funzionalità e metodi utili

di Giuseppe Maggi

Nell’articolo di oggi scopriamo cosa sono le stringhe in Python, quali sono le funzionalità che possiamo applicarvi e i metodi utili per utilizzarle al meglio nel nostro codice.
Prosegui dunque nella lettura per imparare a programmare in Python e padroneggiare questa tipologia di dati.

Python string: cosa sono?

Le stringhe sono tra le tipologie di dati più usate in assoluto nei software e per questo Python le rende con degli oggetti estremamente versatili pronti ad essere analizzati al meglio nei loro contenuti.
Diciamo sin da subito che da Python 3 le stringhe sono tutte Unicode quindi possono ospitare una grandissima varietà di caratteri di ogni lingua e possono essere dichiarate semplicemente passando il loro contenuto tra una coppia di apici singoli o doppi: tra le due notazioni non esiste differenza.

Creiamo subito una stringa d’esempio:

stringa='Oggi è una bella giornata'

e vediamo le diverse funzionalità che si possono applicare su di essa.

Indexing e slicing nelle Python strings

Tra le prime funzionalità, vediamo che possiamo applicare l’indexing e lo slicing.
Il primo rappresenta una lettura di un singolo carattere passando per la sua posizione conteggiata a partire da zero.
Ad esempio, il quarto carattere (il numero 3 contando a partire da 0) è la ‘i’ come ci direbbe:

stringa[3]

Con il termine slicing indichiamo invece la possibilità di estrarre una porzione di stringa indicando i due indici che la delimitano (il secondo non è incluso nel risultato).

Con l’indicazione:

stringa[3:12]

otteniamo:

'i è una b'

Aspetto molto interessante consiste nella possibilità di omettere uno dei due indici. In tal caso, in quella direzione la stringa verrà presa per intero. Inoltre, si possono utilizzare indici negativi con i quali le lettere saranno conteggiate a partire dalla fine della stringa e l’ultimo carattere sarà indicato con -1.

L’espressione:

stringa[-6:]

restituisce infatti:

'ornata'
» VUOI SAPERNE DI PIÙ? VAI AI NOSTRI CORSI PYTHON «

Metodi delle stringhe in Python

In linguaggio Python le stringhe dispongono anche di molti metodi. Ad esempio, upper concede la restituzione di una stringa convertita in maiuscolo, mentre lower una sua versione interamente minuscola.

Ad esempio con:

stringa.upper()

abbiamo:

'OGGI È UNA BELLA GIORNATA'

E al contrario con:

stringa.lower()

otteniamo:

'oggi è una bella giornata'

Funzioni di questo tipo non hanno uno scopo puramente decorativo ma servono per eseguire confronti tra stringhe. Python è infatti un linguaggio case-sensitive pertanto se volessimo verificare che una stringa contenga la parola “stop” indipendentemente dall’uso di caratteri minuscoli o maiuscoli potremmo usare proprio tali funzioni di conversione.

Il seguente controllo, ad esempio, è in grado di dimostrare che le stringhe “sTOp” e “STOP” contengono le stesse lettere sebbene con uso di maiuscole e minuscole diverso:

'sTOp'.upper()=='STOP'

Per citare alcune funzionalità interessanti notiamo che con il metodo replace si può ottenere una nuova stringa in cui sia avvenuta una sostituzione.

Con il seguente esempio possiamo trasformare:

“Oggi è una bella giornata”

in:

“Oggi non è una bella giornata”

Per fare ciò, bisognerà scrivere questo codice:

stringa.replace('è','non è')

Il metodo split rappresenta l’anello di congiunzione tra stringhe e liste infatti permette di separare le stringhe in porzioni diverse a seconda del carattere passato come argomento. Di default, split separa le stringhe in base agli spazi:

stringa.split()

producendo, nel nostro caso, la seguente lista:

['Oggi', 'è', 'una', 'bella', 'giornata']

Con count possiamo contare il numero di occorrenze di una certa stringa in un’altra.
Quante ‘a’ ci sono in “Oggi è una bella giornata”? Ecco la risposta, sono quattro:

stringa.count('a')

Altre utilità interessanti sono, a titolo di esempio, zfill che porta una stringa almeno alla lunghezza da noi desiderata completandola con degli zero, molto utile per realizzare degli identificativi progressivi tutti del medesimo numero di caratteri.

Con:

'4'.zfill(4)

otteniamo:

'0004'
» VUOI SAPERNE DI PIÙ? VAI AI NOSTRI CORSI PYTHON «

Come concatenare le stringhe in Python

Importante sapere che una stringa non può essere concatenata con un numero. Ad esempio, se volessimo creare una sola stringa unendo le seguenti parti:

nome='equipe'
numero=84

usando nome+numero otterremmo il seguente errore:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: can only concatenate str (not "int") to str

Per ovviare a ciò si potrebbe convertire il numero in stringa con la funzione str:

nome+str(numero)

producendo così:

'equipe84'

o, ancora meglio, utilizzando le f-string, l’elegantissimo sistema introdotto in Python 3.6, con cui si possono concatenare variabili all’interno di una stringa mediante l’uso di parentesi graffe:

f'{nome}{numero}'

Nei programmi Python che realizzeremo le stringhe saranno i vettori con cui trasporteremo dati raccolti in Rete, estratti da file o database o prodotti dai nostri utenti; con tutti i metodi a disposizione potremo dunque essere davvero padroni delle nostre informazioni.

» VUOI SAPERNE DI PIÙ? VAI AI NOSTRI CORSI PYTHON «