Strengens 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.
123456name = " Alice " name.strip() # returns "Alice" but doesn't change 'name' print(name) # " Alice " name = name.strip() # assign the new value print(name) # "Alice"
Kjedekalling er greit, men husk at du får et nytt objekt for hvert steg.
1234msg = " hello\n" clean = msg.strip().upper() print(msg) # original remains " hello\n" print(clean) # "HELLO"
"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(t) s = s[:1] + "A" + s[2:] # "dAta" print(t)
Effektiv oppbygging
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:
12parts = ["ID:", " ", "123", "\n", "OK"] result = "".join(parts) # "ID: 123\nOK"
Du vil lære mer om sammenkoblings- og formateringsmønstre i neste kapittel.
1. Hvilken linje forsøker å endre en streng direkte 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
Awesome!
Completion rate improved to 5.26
Strengens 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.
123456name = " Alice " name.strip() # returns "Alice" but doesn't change 'name' print(name) # " Alice " name = name.strip() # assign the new value print(name) # "Alice"
Kjedekalling er greit, men husk at du får et nytt objekt for hvert steg.
1234msg = " hello\n" clean = msg.strip().upper() print(msg) # original remains " hello\n" print(clean) # "HELLO"
"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(t) s = s[:1] + "A" + s[2:] # "dAta" print(t)
Effektiv oppbygging
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:
12parts = ["ID:", " ", "123", "\n", "OK"] result = "".join(parts) # "ID: 123\nOK"
Du vil lære mer om sammenkoblings- og formateringsmønstre i neste kapittel.
1. Hvilken linje forsøker å endre en streng direkte 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!