Strengens Uforanderlighed
Stryg for at vise menuen
I Python er strenge immutable: Når de først er oprettet, kan tegnene de indeholder ikke ændres direkte. Enhver "ændring" du foretager, skaber faktisk en ny streng. Dette er vigtigt for korrekthed (ingen utilsigtede ændringer direkte i strengen) og for ydeevne (hvordan du opbygger større strenge).
Ingen direkte ændringer
Du kan læse tegn ved hjælp af indeks, men du kan ikke tildele nye værdier 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 lader den oprindelige være uændret.
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 indledende og afsluttende mellemrum fra en streng.
Syntaks: string.strip()
Kædning er i orden, men husk at du får et nyt objekt ved hvert trin.
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 af strengen med alle tegn i store bogstaver.
Syntaks: string.upper()
"Modificering" ved at oprette en ny streng
Brug slicing, replace eller sammenkædning for at skabe en ny værdi.
1234567s = "data" s = s.replace("t", "T") # "daTa" print(s) s = s[:1] + "A" + s[2:] # "dATa" print(s)
.replace(): returnerer en kopi af strengen, hvor alle forekomster af en delstreng er erstattet med en anden delstreng.
Syntaks: string.replace(old, new)
Effektiv opbygning
Gentagen brug af + i store løkker kan være langsom (mange mellemliggende strenge). Et almindeligt mønster er at samle dele og sammenkæde é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(): Sammenkæder elementerne i et iterabelt objekt (såsom en liste) til én enkelt streng, adskilt af den streng, metoden kaldes på.
Syntaks: separator.join([str, str, ...])
Du vil lære mere om sammenføjning/formateringsmønstre i næste kapitel.
1. Hvilken linje forsøger at ændre en streng direkte og vil give en fejl?
2. Hvad vil koden udskrive?
3. Du skal samle en lang streng fra mange små dele. Hvad anbefales?
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Strengens Uforanderlighed
I Python er strenge immutable: Når de først er oprettet, kan tegnene de indeholder ikke ændres direkte. Enhver "ændring" du foretager, skaber faktisk en ny streng. Dette er vigtigt for korrekthed (ingen utilsigtede ændringer direkte i strengen) og for ydeevne (hvordan du opbygger større strenge).
Ingen direkte ændringer
Du kan læse tegn ved hjælp af indeks, men du kan ikke tildele nye værdier 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 lader den oprindelige være uændret.
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 indledende og afsluttende mellemrum fra en streng.
Syntaks: string.strip()
Kædning er i orden, men husk at du får et nyt objekt ved hvert trin.
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 af strengen med alle tegn i store bogstaver.
Syntaks: string.upper()
"Modificering" ved at oprette en ny streng
Brug slicing, replace eller sammenkædning for at skabe en ny værdi.
1234567s = "data" s = s.replace("t", "T") # "daTa" print(s) s = s[:1] + "A" + s[2:] # "dATa" print(s)
.replace(): returnerer en kopi af strengen, hvor alle forekomster af en delstreng er erstattet med en anden delstreng.
Syntaks: string.replace(old, new)
Effektiv opbygning
Gentagen brug af + i store løkker kan være langsom (mange mellemliggende strenge). Et almindeligt mønster er at samle dele og sammenkæde é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(): Sammenkæder elementerne i et iterabelt objekt (såsom en liste) til én enkelt streng, adskilt af den streng, metoden kaldes på.
Syntaks: separator.join([str, str, ...])
Du vil lære mere om sammenføjning/formateringsmønstre i næste kapitel.
Tak for dine kommentarer!