Strengers Uforanderlighet
I Python er strenger immutable: når de først er opprettet, kan ikke tegnene de inneholder endres direkte. Enhver "endring" du gjør, oppretter faktisk en ny streng. Dette er viktig for korrekthet (ingen utilsiktede endringer i stedet) og for ytelse (hvordan du bygger større strenger).
Ingen endringer på stedet
Du kan lese tegn ved indeks, men du kan ikke tilordne til dem.
123456s = "hello" t = "H" + s[1:] # Creates a new string: "Hello" print(t) s[0] = "H" # TypeError: strings don't support item assignment
De fleste strengmetoder returnerer en ny streng og lar den opprinnelige være uendret.
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
Kjedede metoder fungerer fint, men husk at du får et nytt objekt for hvert steg.
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
"Endring" ved å opprette en ny streng
Bruk slicing, replace eller sammenkobling for å produsere en ny verdi.
1234567s = "data" s = s.replace("t", "T") # "daTa" print(s) s = s[:1] + "A" + s[2:] # "dAta" print(s)
Effektiv sammensetting
Gjennomgående bruk av + i store løkker kan være tregt (mange mellomliggende strenger). Et vanlig mønster er å samle deler og slå dem sammen én gang:
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)
Du vil lære mer om sammensettings- og formateringsmønstre i neste kapittel.
1. Hvilken linje forsøker å endre en streng på stedet og vil gi en feil?
2. Hva vil koden skrive ut?
3. Du må sette sammen en lang streng fra mange små deler. Hva anbefales?
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
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
Strengers Uforanderlighet
Sveip for å vise menyen
I Python er strenger immutable: når de først er opprettet, kan ikke tegnene de inneholder endres direkte. Enhver "endring" du gjør, oppretter faktisk en ny streng. Dette er viktig for korrekthet (ingen utilsiktede endringer i stedet) og for ytelse (hvordan du bygger større strenger).
Ingen endringer på stedet
Du kan lese tegn ved indeks, men du kan ikke tilordne til dem.
123456s = "hello" t = "H" + s[1:] # Creates a new string: "Hello" print(t) s[0] = "H" # TypeError: strings don't support item assignment
De fleste strengmetoder returnerer en ny streng og lar den opprinnelige være uendret.
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
Kjedede metoder fungerer fint, men husk at du får et nytt objekt for hvert steg.
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
"Endring" ved å opprette en ny streng
Bruk slicing, replace eller sammenkobling for å produsere en ny verdi.
1234567s = "data" s = s.replace("t", "T") # "daTa" print(s) s = s[:1] + "A" + s[2:] # "dAta" print(s)
Effektiv sammensetting
Gjennomgående bruk av + i store løkker kan være tregt (mange mellomliggende strenger). Et vanlig mønster er å samle deler og slå dem sammen én gang:
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)
Du vil lære mer om sammensettings- og formateringsmønstre i neste kapittel.
1. Hvilken linje forsøker å endre en streng på stedet og vil gi en feil?
2. Hva vil koden skrive ut?
3. Du må sette sammen en lang streng fra mange små deler. Hva anbefales?
Takk for tilbakemeldingene dine!