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

bookImmutabilità delle Stringhe

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

Nessuna modifica in loco

È possibile leggere i caratteri tramite indice, ma non è possibile assegnare loro nuovi valori.

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

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
copy

L'uso in catena va bene, ma ricorda che ad 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
copy

"Modifica" tramite creazione di una nuova stringa

Utilizzare 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)
copy

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)
copy
Note
Nota

Imparerai altri modelli 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. Qual è la soluzione consigliata?

question mark

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

Select the correct answer

question mark

Quale sarà l'output del codice?

Select the correct answer

question mark

È necessario assemblare una stringa lunga da molti piccoli pezzi. Qual è la soluzione consigliata?

Select the correct answer

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

Suggested prompts:

Can you explain why string immutability is important in Python?

What are some common mistakes beginners make with string immutability?

Can you show more examples of efficient string building?

Awesome!

Completion rate improved to 3.45

bookImmutabilità delle Stringhe

Scorri per mostrare il menu

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

Nessuna modifica in loco

È possibile leggere i caratteri tramite indice, ma non è possibile assegnare loro nuovi valori.

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

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
copy

L'uso in catena va bene, ma ricorda che ad 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
copy

"Modifica" tramite creazione di una nuova stringa

Utilizzare 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)
copy

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)
copy
Note
Nota

Imparerai altri modelli 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. Qual è la soluzione consigliata?

question mark

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

Select the correct answer

question mark

Quale sarà l'output del codice?

Select the correct answer

question mark

È necessario assemblare una stringa lunga da molti piccoli pezzi. Qual è la soluzione consigliata?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 3. Capitolo 4
some-alt