Abbiamo già visto quanto sia potente Python nel gestire le stringhe. Possiamo cercare una stringa utilizzando la parola chiave in, possiamo prendere una parte di testo facendo uno slicing, ottenere la sua lunghezza, formattare con le f-string, ecc. Questo è in realtà solo la punta dell'iceberg.
In Python, ci sono molte funzioni utili per gestire manipolazioni di testo più complesse. Ci sono oltre 40 utility che possono essere utilizzate in diversi scenari. L'intera lista di questi metodi può essere trovata sulla pagina ufficiale di Python: metodi delle stringhe. La buona notizia è che non è necessario ricordarli tutti. Quasi tutti hanno un nome molto intuitivo ed è facile trovare quello che serve con una rapida ricerca su Google. Copriremo alcune funzioni molto popolari che tornano utili di tanto in tanto e sono usate frequentemente quando si lavora con le stringhe.
# .upper() converte tutte le lettere in maiuscole
s = 'What happened to Anna?'
up = s.upper()
print('Hi 123 this is Sally!'.upper()) # HI 123 THIS IS SALLY!
print(s) # What happened to Anna?
print(s.upper()) # WHAT HAPPENED TO ANNA?
print(up) # WHAT HAPPENED TO ANNA?
# .lower() converte tutte le lettere in minuscole
s = 'What happened to Anna?'
low = s.lower()
print('Hi 123 this is Sally!'.lower()) # hi 123 this is sally!
print(s) # What happened to Anna?
print(s.lower()) # what happened to anna?
print(low) # what happened to anna?
# .title() inizia tutte le parole con una lettera maiuscola (stile titolo)
s = 'What happened to Anna?'
title = s.title()
print('Hi 123 this is Sally!'.title()) # Hi 123 This Is Sally!
print(s) # What happened to Anna?
print(s.title()) # What Happened To Anna?
print(title) # What Happened To Anna?
# .capitalize() inizia la frase con una lettera maiuscola
s = 'What happened to Anna?'
capital = s.capitalize()
print('Hi 123 this is Sally!'.capitalize()) # Hi 123 this is sally!
print(s) # What happened to Anna?
print(s.capitalize()) # What happened to anna?
print(capital) # What happened to anna?
# .swapcase() trasforma minuscole -> maiuscole, maiuscole -> minuscole
s = 'What happened to Anna?'
swapped = s.swapcase()
print('Hi 123 this is Sally!'.swapcase()) # hI 123 THIS IS sALLY!
print(s) # What happened to Anna?
print(s.swapcase()) # wHAT HAPPENED TO aNNA?
print(swapped) # wHAT HAPPENED TO aNNA?
È importante notare che i metodi delle stringhe non modificano la variabile originale. Creano un nuovo valore e lo restituiscono. Il valore originale rimane lo stesso. Quindi, quando si chiama a.lower(), il valore di a non cambia. Rimane lo stesso, ma lower() restituisce un nuovo valore che contiene la versione minuscola di a.
Sfida
Ti viene dato un comando e un testo. Il tuo compito è applicare quel comando al testo.
Il comando può essere uno dei seguenti: upper, lower, capitalize, title, swap.
Il comando può essere scritto con lettere maiuscole o minuscole. La gestione del comando non deve essere case-sensitive.
La prima riga del programma contiene il comando. La seconda riga contiene il testo che deve essere modificato.
L'output deve essere una singola riga: il testo trasformato.