Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Immutabilità delle Stringhe | Stringhe
Tipi di Dati in Python

Immutabilità delle Stringhe

Scorri per mostrare il menu

In Python, le stringhe sono immutabili: una volta create, i caratteri che contengono non possono essere modificati in loco. Qualsiasi "modifica" in realtà crea una nuova stringa. Questo è importante sia per la correttezza (nessuna modifica accidentale in loco) sia per le prestazioni (come si costruiscono stringhe più grandi).

Nessuna modifica in loco

È possibile leggere i caratteri tramite indice, ma non è possibile assegnare loro un nuovo valore.

123456
s = "hello" t = "H" + s[1:] # Creates a new string: "Hello" print(t) s[0] = "H" # TypeError: strings don't support item assignment

La maggior parte dei metodi delle stringhe restituisce una nuova stringa e lascia l'originale invariata.

12345678
# Cleaning up user input from a registration form user_name = " Alice " user_name.strip() # returns "Alice", but the variable still has spaces print(user_name) # " Alice " user_name = user_name.strip() # assign the cleaned value back print(user_name) # "Alice" → cleaned and ready to store
Note
Nota

.strip(): rimuove gli spazi bianchi iniziali e finali da una stringa.

Sintassi: string.strip()

L'uso concatenato va bene, ma ricorda che a ogni passaggio ottieni un nuovo oggetto.

123456
# Normalizing a user's chat message before saving it user_message = " hello\n" clean_message = user_message.strip().upper() print(user_message) # original remains " hello\n" print(clean_message) # "HELLO" → cleaned and ready for processing
Note
Nota

.upper(): Restituisce una copia della stringa con tutti i caratteri in maiuscolo.

Sintassi: string.upper()

"Modifica" tramite creazione di una nuova stringa

Utilizzo di slicing, replace o concatenazione per produrre un nuovo valore.

1234567
s = "data" s = s.replace("t", "T") # "daTa" print(s) s = s[:1] + "A" + s[2:] # "dATa" print(s)
Note
Nota

.replace(): restituisce una copia della stringa con tutte le occorrenze di una sottostringa sostituite con un'altra sottostringa.

Sintassi: string.replace(old, new)

Costruzione efficiente

L'uso ripetuto di + in grandi cicli può essere lento (molte stringhe intermedie). Un modello comune è raccogliere i pezzi e unirli una sola volta:

1234
# Combining message parts received from a device response_parts = ["Status:", " ", "200", "\n", "Success"] response_message = "".join(response_parts) # "Status: 200\nSuccess" print(response_message)
Note
Nota

.join(): concatena gli elementi di un iterabile (come una lista) in un'unica stringa, separati dalla stringa su cui viene chiamato il metodo.

Sintassi: separator.join([str, str, ...])

Note
Nota

Imparerai ulteriori schemi di unione/formattazione nel prossimo capitolo.

1. Quale riga tenta di modificare una stringa in loco e genererà un errore?

2. Quale sarà l'output del codice?

3. È necessario assemblare una stringa lunga da molti piccoli pezzi. Cosa è consigliato?

question mark

Quale riga tenta di modificare una stringa in loco e genererà un errore?

Seleziona la risposta corretta

question mark

Quale sarà l'output del codice?

Seleziona la risposta corretta

question mark

È necessario assemblare una stringa lunga da molti piccoli pezzi. Cosa è consigliato?

Seleziona la risposta corretta

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 3. Capitolo 4

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Sezione 3. Capitolo 4
some-alt