Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Strängars Oföränderlighet | Strängar
Datatyper i Python

bookSträngars Oföränderlighet

I Python är strängar oföränderliga: när de väl har skapats kan tecknen de innehåller inte ändras på plats. Varje "ändring" du gör skapar faktiskt en ny sträng. Detta är viktigt för korrekthet (inga oavsiktliga ändringar på plats) och för prestanda (hur du bygger större strängar).

Inga ändringar på plats

Du kan läsa tecken via index, men du kan inte tilldela dem nya värden.

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 flesta strängmetoder returnerar en ny sträng och lämnar originalet oförändrat.

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

Kedjning är tillåten, men kom ihåg att du får ett nytt objekt vid varje steg.

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

"Modifiera" genom att skapa en ny sträng

Använd slicing, replace eller konkatenering för att skapa ett nytt värde.

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

Effektiv uppbyggnad

Upprepad + i stora loopar kan vara långsam (många mellanliggande strängar). Ett vanligt mönster är att samla delar och slå ihop en gång:

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

Du kommer att lära dig fler mönster för sammanslagning/formatering i nästa kapitel.

1. Vilken rad försöker ändra en sträng på plats och kommer att ge ett felmeddelande?

2. Vad kommer koden att skriva ut?

3. Du behöver sätta ihop en lång sträng från många små delar. Vad rekommenderas?

question mark

Vilken rad försöker ändra en sträng på plats och kommer att ge ett felmeddelande?

Select the correct answer

question mark

Vad kommer koden att skriva ut?

Select the correct answer

question mark

Du behöver sätta ihop en lång sträng från många små delar. Vad rekommenderas?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 4

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

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

bookSträngars Oföränderlighet

Svep för att visa menyn

I Python är strängar oföränderliga: när de väl har skapats kan tecknen de innehåller inte ändras på plats. Varje "ändring" du gör skapar faktiskt en ny sträng. Detta är viktigt för korrekthet (inga oavsiktliga ändringar på plats) och för prestanda (hur du bygger större strängar).

Inga ändringar på plats

Du kan läsa tecken via index, men du kan inte tilldela dem nya värden.

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 flesta strängmetoder returnerar en ny sträng och lämnar originalet oförändrat.

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

Kedjning är tillåten, men kom ihåg att du får ett nytt objekt vid varje steg.

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

"Modifiera" genom att skapa en ny sträng

Använd slicing, replace eller konkatenering för att skapa ett nytt värde.

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

Effektiv uppbyggnad

Upprepad + i stora loopar kan vara långsam (många mellanliggande strängar). Ett vanligt mönster är att samla delar och slå ihop en gång:

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

Du kommer att lära dig fler mönster för sammanslagning/formatering i nästa kapitel.

1. Vilken rad försöker ändra en sträng på plats och kommer att ge ett felmeddelande?

2. Vad kommer koden att skriva ut?

3. Du behöver sätta ihop en lång sträng från många små delar. Vad rekommenderas?

question mark

Vilken rad försöker ändra en sträng på plats och kommer att ge ett felmeddelande?

Select the correct answer

question mark

Vad kommer koden att skriva ut?

Select the correct answer

question mark

Du behöver sätta ihop en lång sträng från många små delar. Vad rekommenderas?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 4
some-alt