Onveranderlijkheid van Strings
In Python zijn strings onveranderlijk: eenmaal aangemaakt kunnen de tekens die ze bevatten niet ter plaatse worden gewijzigd. Elke "wijziging" die wordt uitgevoerd, creëert eigenlijk een nieuwe string. Dit is van belang voor de correctheid (geen onbedoelde wijzigingen ter plaatse) en voor de prestaties (hoe grotere strings worden opgebouwd).
Geen Wijzigingen Ter Plaatse
Tekens kunnen worden uitgelezen via hun index, maar het is niet mogelijk om ze toe te wijzen.
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.
123456name = " Alice " name.strip() # returns "Alice" but doesn't change 'name' print(name) # " Alice " name = name.strip() # assign the new value print(name) # "Alice"
Koppelen is toegestaan, maar onthoud dat je bij elke stap een nieuw object krijgt.
1234msg = " hello\n" clean = msg.strip().upper() print(msg) # original remains " hello\n" print(clean) # "HELLO"
"Wijzigen" door een nieuwe string te creëren
Gebruik slicing, replace of concatenatie om een nieuwe waarde te produceren.
1234567s = "data" s = s.replace("t", "T") # "daTa" print(t) s = s[:1] + "A" + s[2:] # "dAta" print(t)
Efficiënt samenstellen
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:
12parts = ["ID:", " ", "123", "\n", "OK"] result = "".join(parts) # "ID: 123\nOK"
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. Je moet een lange string samenstellen 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 people make when working with immutable strings?
Can you show more examples of efficient string building?
Awesome!
Completion rate improved to 5.26
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 wordt uitgevoerd, creëert eigenlijk een nieuwe string. Dit is van belang voor de correctheid (geen onbedoelde wijzigingen ter plaatse) en voor de prestaties (hoe grotere strings worden opgebouwd).
Geen Wijzigingen Ter Plaatse
Tekens kunnen worden uitgelezen via hun index, maar het is niet mogelijk om ze toe te wijzen.
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.
123456name = " Alice " name.strip() # returns "Alice" but doesn't change 'name' print(name) # " Alice " name = name.strip() # assign the new value print(name) # "Alice"
Koppelen is toegestaan, maar onthoud dat je bij elke stap een nieuw object krijgt.
1234msg = " hello\n" clean = msg.strip().upper() print(msg) # original remains " hello\n" print(clean) # "HELLO"
"Wijzigen" door een nieuwe string te creëren
Gebruik slicing, replace of concatenatie om een nieuwe waarde te produceren.
1234567s = "data" s = s.replace("t", "T") # "daTa" print(t) s = s[:1] + "A" + s[2:] # "dAta" print(t)
Efficiënt samenstellen
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:
12parts = ["ID:", " ", "123", "\n", "OK"] result = "".join(parts) # "ID: 123\nOK"
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. Je moet een lange string samenstellen uit veel kleine stukjes. Wat wordt aanbevolen?
Bedankt voor je feedback!