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

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
copy

Kedjning fungerar bra, men kom ihåg att du får ett nytt objekt vid varje steg.

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
copy

"Modifiering" genom att skapa en ny sträng

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

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

Effektiv uppbyggnad

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

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)
copy
Note
Notera

Du kommer att lära dig mer om sammanslagnings- och formateringsmönster 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

Awesome!

Completion rate improved to 3.45

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

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
copy

Kedjning fungerar bra, men kom ihåg att du får ett nytt objekt vid varje steg.

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
copy

"Modifiering" genom att skapa en ny sträng

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

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

Effektiv uppbyggnad

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

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)
copy
Note
Notera

Du kommer att lära dig mer om sammanslagnings- och formateringsmönster 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