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

bookStrengens Uforanderlighed

I Python er strenge immutable: når de først er oprettet, kan tegnene de indeholder ikke ændres direkte. Enhver "ændring" du foretager, opretter 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 ændringer direkte i strengen

Du kan læse tegn ved hjælp af indeks, men du kan ikke tildele dem nye værdier.

123456
s = "hello" t = "H" + s[1:] # Creates a new string: "Hello" print(t) s[0] = "H" # TypeError: strings don't support item assignment
copy

De fleste strengmetoder returnerer en ny streng og lader den oprindelige være uændret.

123456
name = " Alice " name.strip() # returns "Alice" but doesn't change 'name' print(name) # " Alice " name = name.strip() # assign the new value print(name) # "Alice"
copy

Kædning er acceptabelt, men husk at du får et nyt objekt ved hvert trin.

1234
msg = " hello\n" clean = msg.strip().upper() print(msg) # original remains " hello\n" print(clean) # "HELLO"
copy

"Ændring" ved at oprette en ny streng

Brug slicing, replace eller sammenkædning for at producere en ny værdi.

1234567
s = "data" s = s.replace("t", "T") # "daTa" print(t) s = s[:1] + "A" + s[2:] # "dAta" print(t)
copy

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:

12
parts = ["ID:", " ", "123", "\n", "OK"] result = "".join(parts) # "ID: 123\nOK"
copy
Note
Bemærk

Du lærer flere sammenkædnings-/formateringsmønstre i næste kapitel.

1. Hvilken linje forsøger at ændre en streng in place og vil udløse 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 in place og vil udløse en fejl?

Select the correct answer

question mark

Hvad vil koden udskrive?

Select the correct answer

question mark

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

Select the correct answer

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

Suggested prompts:

Can you explain why string immutability is important in Python?

What are some common mistakes people make when working with immutable strings?

Can you show more examples of efficient string building?

Awesome!

Completion rate improved to 5.26

bookStrengens 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, opretter 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 ændringer direkte i strengen

Du kan læse tegn ved hjælp af indeks, men du kan ikke tildele dem nye værdier.

123456
s = "hello" t = "H" + s[1:] # Creates a new string: "Hello" print(t) s[0] = "H" # TypeError: strings don't support item assignment
copy

De fleste strengmetoder returnerer en ny streng og lader den oprindelige være uændret.

123456
name = " Alice " name.strip() # returns "Alice" but doesn't change 'name' print(name) # " Alice " name = name.strip() # assign the new value print(name) # "Alice"
copy

Kædning er acceptabelt, men husk at du får et nyt objekt ved hvert trin.

1234
msg = " hello\n" clean = msg.strip().upper() print(msg) # original remains " hello\n" print(clean) # "HELLO"
copy

"Ændring" ved at oprette en ny streng

Brug slicing, replace eller sammenkædning for at producere en ny værdi.

1234567
s = "data" s = s.replace("t", "T") # "daTa" print(t) s = s[:1] + "A" + s[2:] # "dAta" print(t)
copy

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:

12
parts = ["ID:", " ", "123", "\n", "OK"] result = "".join(parts) # "ID: 123\nOK"
copy
Note
Bemærk

Du lærer flere sammenkædnings-/formateringsmønstre i næste kapitel.

1. Hvilken linje forsøger at ændre en streng in place og vil udløse 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 in place og vil udløse en fejl?

Select the correct answer

question mark

Hvad vil koden udskrive?

Select the correct answer

question mark

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

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 4
some-alt