Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Immutabilità delle Stringhe | Stringhe
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
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

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