0%

Werken met tekst · oefening

Stringbewerkingen geven nieuwe waarden terug

De stringmethoden die je tot nu toe hebt gebruikt, geven strings terug. Ze veranderen de oorspronkelijke stringwaarde niet.

original = "quiet"
uppercase = original.upper()

print(original)
print(uppercase)

De uitvoer is:

quiet
QUIET

original verwijst nog steeds naar "quiet". De methode gaf een afzonderlijke string in hoofdletters terug, die aan uppercase werd toegewezen.

Strings zijn onveranderbaar

Python-strings zijn onveranderbaar. Zodra een bepaalde stringwaarde bestaat, veranderen de tekens in die string zelf niet meer.

Een bewerking kan een andere string opleveren. Je kunt een variabele vervolgens opnieuw toewijzen aan die teruggegeven waarde:

message = "hello"
message = message.upper()

De variabele message verwijst eerst naar "hello" en daarna naar de nieuwe string "HELLO". De oorspronkelijke string is niet teken voor teken bewerkt.

Dit verschil wordt belangrijk wanneer je in hoofdstuk 6 lijsten leert kennen. Een lijst is namelijk veranderbaar en kan zelf worden aangepast.

Vervang een deel van een string

De methode .replace() geeft een string terug waarin de gekozen tekst is vervangen:

Try it

replace() krijgt twee argumenten:

  1. de tekst die je wilt zoeken;

  2. de vervangende tekst.

De oorspronkelijke zin blijft "I like tea.". De teruggegeven string is "I like coffee.".

Als de gezochte tekst niet voorkomt, geeft .replace() een string met dezelfde tekens terug. Er verschijnt geen fout.

Negeer de teruggegeven waarde niet

Deze aanroep berekent een nieuwe string, maar slaat die niet op en drukt die niet af:

word = "cat"
word.replace("c", "h")

Daarna verwijst word nog steeds naar "cat".

Wat drukt dit programma af?

word = "cat"
word.replace("c", "h")
print(word)

Bekijk hoe onveranderbaarheid werkt

In de Step-weergave van de oefeneditor kun je original en updated vergelijken in Locals voordat een van de printinstructies wordt uitgevoerd. Na de vervanging bevatten ze "red balloon" en "blue balloon". De gewijzigde waarde is apart opgeslagen; de oorspronkelijke string blijft beschikbaar.

Bewaar een oorspronkelijke en een aangepaste versie

Het startprogramma beschrijft een rode ballon.

Vervang de lege string, zodat updated de waarde krijgt die .replace() op original teruggeeft. Verander red in blue.

Laat original ongewijzigd. De uitvoer moet zijn:

Original: red balloon
Updated: blue balloon

Deze oefening controleert een belangrijke gewoonte: als een stringbewerking een waarde teruggeeft die je nodig hebt, wijs die dan ergens aan toe.

Opdracht

Gebruik .replace() op original om updated te maken, waarbij je red verandert in blue.

Zorg voor deze uitvoer:

Original: red balloon
Updated: blue balloon

Gebruik Step in de oefeneditor. Vergelijk na de toewijzing van de vervanging original (red balloon) en updated (blue balloon) in Locals. Ga verder langs de printinstructies en kijk hoe de twee regels verschijnen.