Salta ai contenuti
Manuale LogoManuale Logo

Stringhe in Python

Una stringa rappresenta testo, come un nome, un messaggio o una frase. In Python si scrive tra virgolette singole '...' o doppie "...":

nome = "Alice"
saluto = 'Ciao, mondo!'

Puoi usare le virgolette doppie quando il testo contiene un apostrofo, e quelle singole quando contiene virgolette doppie:

con_apice = "It's a great day" # apostrofo dentro → virgolette doppie fuori
con_virgolette = 'Disse "ciao!"' # virgolette doppie dentro → singole fuori

Per un testo su più righe usa le virgolette triple:

poesia = """Questa stringa
si estende su
più righe."""

Come nelle liste, ogni carattere ha un indice che parte da 0:

testo = "Python"
print(testo[0]) # P: primo carattere
print(testo[1]) # y
print(testo[-1]) # n: ultimo carattere
print(testo[-2]) # o: penultimo

Puoi estrarre una sottostringa indicando l’indice iniziale e quello finale:

testo = "Python"
print(testo[0:3]) # Pyt: dalla posizione 0 alla 2 (3 esclusa)
print(testo[2:]) # thon: dalla posizione 2 alla fine
print(testo[:4]) # Pyth: dall'inizio alla posizione 3
print(testo[::-1]) # nohtyP: la stringa al contrario
testo = "Python"
print(len(testo)) # 6

Con + puoi unire due stringhe; con * puoi ripetere una stringa:

a = "Ciao"
b = " mondo"
print(a + b) # Ciao mondo
print(a * 3) # CiaoCiaoCiao

Per inserire variabili nel testo puoi usare le f-string: scrivi una f prima delle virgolette e metti le variabili tra parentesi graffe {}:

nome = "Alice"
eta = 16
print(f"Mi chiamo {nome} e ho {eta} anni.")
# Mi chiamo Alice e ho 16 anni.
a = 5
b = 3
print(f"La somma di {a} e {b} è {a + b}.")
# La somma di 5 e 3 è 8.

Le f-string rendono espliciti i valori inseriti nella stringa e sono adatte a questo caso.

Le stringhe hanno molti metodi integrati. Questi sono alcuni dei più usati.

testo = " Ciao, Mondo! "
print(testo.upper()) # " CIAO, MONDO! ": tutto maiuscolo
print(testo.lower()) # " ciao, mondo! ": tutto minuscolo
print(testo.strip()) # "Ciao, Mondo!": rimuove spazi iniziali e finali
testo = "Ciao, Mondo!"
print(testo.replace("Mondo", "Python")) # "Ciao, Python!"
frutta = "mela,banana,ciliegia"
print(frutta.split(",")) # ['mela', 'banana', 'ciliegia']: divide in lista
print(",".join(["mela", "banana", "ciliegia"])) # "mela,banana,ciliegia": unisce
testo = "ciao"
print(testo.capitalize()) # "Ciao": prima lettera maiuscola
print(testo.startswith("ci")) # True: inizia con "ci"?
print(testo.endswith("ao")) # True: finisce con "ao"?
print(testo.find("ia")) # 1: dove inizia "ia"? (-1 se non trovato)
print(testo.count("a")) # 1: quante volte compare "a"?

Alcune combinazioni di caratteri con \ hanno un significato speciale:

Sequenza Significato Esempio
\n Nuova riga "Prima riga\nSeconda riga"
\t Tabulazione (spazi) "Nome:\tAlice"
\\ Un singolo backslash "C:\\Users\\Alice"
\" Virgolette doppie dentro la stringa "Disse \"ciao!\""
print("Prima riga\nSeconda riga")
# Prima riga
# Seconda riga
print("Nome:\tAlice")
# Nome: Alice

Le stringhe sono immutabili: non puoi cambiare un singolo carattere. Per ottenere una versione modificata devi crearne una nuova:

testo = "ciao"
# testo[0] = "C": ERRORE! Non si può modificare
# Crea invece una nuova stringa
testo = "C" + testo[1:]
print(testo) # Ciao