Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Strengs Uforanderlighed | Strenge
Datatyper i Python

Strengs Uforanderlighed

Stryg for at vise menuen

I Python er strenge immutable: Når de først er oprettet, kan tegnene i dem ikke ændres direkte. Enhver "ændring" du foretager, skaber faktisk en ny streng. Dette er vigtigt for korrekthed (ingen utilsigtede ændringer i stedet) og for ydeevne (hvordan du opbygger større strenge).

Ingen ændringer på stedet

Du kan læse tegn ved indeks, men du kan ikke tildele til dem.

123456
s = "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
Note
Bemærk

.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
Note
Bemærk

.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.

1234567
s = "data" s = s.replace("t", "T") # "daTa" print(s) s = s[:1] + "A" + s[2:] # "dATa" print(s)
Note
Bemærk

.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 langsomt (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)
Note
Bemærk

.join(): Sammenkæder elementer i et itererbart objekt (såsom en liste) til én enkelt streng, adskilt af den streng, som metoden kaldes på.

Syntaks: separator.join([str, str, ...])

Note
Bemærk

Du lærer mere om sammenføjnings-/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?

question mark

Hvilken linje forsøger at ændre en streng direkte og vil give en fejl?

Vælg det korrekte svar

question mark

Hvad vil koden udskrive?

Vælg det korrekte svar

question mark

Du skal samle en lang streng fra mange små dele. Hvad anbefales?

Vælg det korrekte svar

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 4

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Strengs Uforanderlighed

I Python er strenge immutable: Når de først er oprettet, kan tegnene i dem ikke ændres direkte. Enhver "ændring" du foretager, skaber faktisk en ny streng. Dette er vigtigt for korrekthed (ingen utilsigtede ændringer i stedet) og for ydeevne (hvordan du opbygger større strenge).

Ingen ændringer på stedet

Du kan læse tegn ved indeks, men du kan ikke tildele til dem.

123456
s = "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
Note
Bemærk

.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
Note
Bemærk

.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.

1234567
s = "data" s = s.replace("t", "T") # "daTa" print(s) s = s[:1] + "A" + s[2:] # "dATa" print(s)
Note
Bemærk

.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 langsomt (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)
Note
Bemærk

.join(): Sammenkæder elementer i et itererbart objekt (såsom en liste) til én enkelt streng, adskilt af den streng, som metoden kaldes på.

Syntaks: separator.join([str, str, ...])

Note
Bemærk

Du lærer mere om sammenføjnings-/formateringsmønstre i næste kapitel.

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 4
some-alt