Onveranderlijkheid van Strings
In Python zijn strings onveranderlijk: eenmaal aangemaakt kunnen de tekens die ze bevatten niet ter plaatse worden gewijzigd. Elke "wijziging" die je uitvoert, creëert eigenlijk een nieuwe string. Dit is van belang voor de correctheid (geen onbedoelde wijzigingen ter plaatse) en voor de prestaties (hoe je grotere strings opbouwt).
Geen wijzigingen ter plaatse
Je kunt tekens lezen via hun index, maar je kunt ze niet toewijzen.
123456s = "hello" t = "H" + s[1:] # Creates a new string: "Hello" print(t) s[0] = "H" # TypeError: strings don't support item assignment
De meeste stringmethoden retourneren een nieuwe string en laten het origineel onveranderd.
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
Koppelen is toegestaan, maar onthoud dat je bij elke stap een nieuw object krijgt.
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
"Wijzigen" door een Nieuwe String te Maken
Gebruik slicing, replace of concatenatie om een nieuwe waarde te produceren.
1234567s = "data" s = s.replace("t", "T") # "daTa" print(s) s = s[:1] + "A" + s[2:] # "dAta" print(s)
Efficiënt Opbouwen
Herhaald gebruik van + in grote lussen kan traag zijn (veel tussentijdse strings). Een gangbaar patroon is om delen te verzamelen en eenmaal samen te voegen:
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)
Je leert meer over samenvoeg- en opmaakpatronen in het volgende hoofdstuk.
1. Welke regel probeert een string ter plaatse te wijzigen en zal een fout veroorzaken?
2. Wat zal de code afdrukken?
3. Er moet een lange string worden samengesteld uit veel kleine stukjes. Wat wordt aanbevolen?
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Can you explain why string immutability is important in Python?
What are some common mistakes beginners make with string immutability?
Can you show more examples of efficient string building?
Awesome!
Completion rate improved to 3.45
Onveranderlijkheid van Strings
Veeg om het menu te tonen
In Python zijn strings onveranderlijk: eenmaal aangemaakt kunnen de tekens die ze bevatten niet ter plaatse worden gewijzigd. Elke "wijziging" die je uitvoert, creëert eigenlijk een nieuwe string. Dit is van belang voor de correctheid (geen onbedoelde wijzigingen ter plaatse) en voor de prestaties (hoe je grotere strings opbouwt).
Geen wijzigingen ter plaatse
Je kunt tekens lezen via hun index, maar je kunt ze niet toewijzen.
123456s = "hello" t = "H" + s[1:] # Creates a new string: "Hello" print(t) s[0] = "H" # TypeError: strings don't support item assignment
De meeste stringmethoden retourneren een nieuwe string en laten het origineel onveranderd.
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
Koppelen is toegestaan, maar onthoud dat je bij elke stap een nieuw object krijgt.
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
"Wijzigen" door een Nieuwe String te Maken
Gebruik slicing, replace of concatenatie om een nieuwe waarde te produceren.
1234567s = "data" s = s.replace("t", "T") # "daTa" print(s) s = s[:1] + "A" + s[2:] # "dAta" print(s)
Efficiënt Opbouwen
Herhaald gebruik van + in grote lussen kan traag zijn (veel tussentijdse strings). Een gangbaar patroon is om delen te verzamelen en eenmaal samen te voegen:
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)
Je leert meer over samenvoeg- en opmaakpatronen in het volgende hoofdstuk.
1. Welke regel probeert een string ter plaatse te wijzigen en zal een fout veroorzaken?
2. Wat zal de code afdrukken?
3. Er moet een lange string worden samengesteld uit veel kleine stukjes. Wat wordt aanbevolen?
Bedankt voor je feedback!