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
.strip(): fjerner innledende og etterfølgende mellomrom fra en streng.
Syntaks: string.strip()
Kjeding er greit, 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
.upper(): Returnerer en kopi av strengen med alle tegn i store bokstaver.
Syntaks: string.upper()
"Endring" ved å opprette en ny streng
Bruk slicing, replace eller konkatenering for å lage en ny verdi.
1234567s = "data" s = s.replace("t", "T") # "daTa" print(s) s = s[:1] + "A" + s[2:] # "dATa" print(s)
.replace(): returnerer en kopi av strengen der alle forekomster av en delstreng er erstattet med en annen delstreng.
Syntaks: string.replace(old, new)
Effektiv bygging
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)
.join(): Slår sammen elementene i et itererbart objekt (for eksempel en liste) til én enkelt streng, adskilt av strengen metoden kalles på.
Syntaks: separator.join([str, str, ...])
Du vil lære mer om sammenkoblings-/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
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
.strip(): fjerner innledende og etterfølgende mellomrom fra en streng.
Syntaks: string.strip()
Kjeding er greit, 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
.upper(): Returnerer en kopi av strengen med alle tegn i store bokstaver.
Syntaks: string.upper()
"Endring" ved å opprette en ny streng
Bruk slicing, replace eller konkatenering for å lage en ny verdi.
1234567s = "data" s = s.replace("t", "T") # "daTa" print(s) s = s[:1] + "A" + s[2:] # "dATa" print(s)
.replace(): returnerer en kopi av strengen der alle forekomster av en delstreng er erstattet med en annen delstreng.
Syntaks: string.replace(old, new)
Effektiv bygging
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)
.join(): Slår sammen elementene i et itererbart objekt (for eksempel en liste) til én enkelt streng, adskilt av strengen metoden kalles på.
Syntaks: separator.join([str, str, ...])
Du vil lære mer om sammenkoblings-/formateringsmønstre i neste kapittel.
Takk for tilbakemeldingene dine!