← Python/Tekst begrijpen en verwerken
Les 1 van 8
MODULE 05 · 01◷ 26 min

Pak precies het stukje tekst dat je nodig hebt

Na deze les kun je
  • Tekstposities vanaf het begin en het einde lezen
  • Slices gebruiken bij lege en korte strings
  • Nieuwe tekst samenstellen zonder de oorspronkelijke string te veranderen

Op een scherm past soms alleen een korte plaatsnaam of een aangepast label. Je wilt dan een begin, einde of middendeel uit bestaande tekst kiezen. De slices die je al bij lijsten gebruikte, werken ook voor strings, maar veranderen de oorspronkelijke tekst niet.

Welke positie lees je?

Een index is een genummerde positie in een reeks. Python begint bij nul: bij "DELFT" staat de D op positie nul en de T op positie vier. Een index van min één leest de laatste positie, min twee de voorlaatste.

Positie vanaf het begin01234
TekstDELFT
Positie vanaf het einde-5-4-3-2-1

Python telt hierbij codepunten: genummerde teksteenheden uit Unicode. Bij deze plaatsnaam zijn dat gewoon de vijf letters. Een zichtbare letter met een los accent kan uit meer codepunten bestaan; dat onderzoeken we later in deze module.

Een deel kiezen met een slice

Een slice zoals label[1:4] neemt het begin mee en laat het einde weg. Zij kiest dus posities één, twee en drie. Het resultaat is weer een string, ook wanneer die string maar één codepunt bevat.

Laat je het begin weg, dan kies je vanaf het begin. Laat je het einde weg, dan kies je door tot het einde. Een grens voorbij de beschikbare tekst wordt ingekort: label[:20] levert hier de hele plaatsnaam op.

Met een derde onderdeel kies je een stap, zoals bij lijsten. De schrijfwijze label[::-1] doorloopt alle posities vanaf het einde met stappen van min één. Zo keer je de volgorde van codepunten om; bij samengestelde zichtbare tekens is dat niet automatisch een nette visuele omkering.

Voorspel de zeven uitvoerregels en voer daarna dit volledige voorbeeld uit. Let bij de laatste twee regels op het verschil tussen een nieuw label en de oorspronkelijke tekst.

Een plaatsnaam lezen en aanpassen
label = "DELFT"
print(label[0])
print(label[-1])
print(label[1:4])
print(label[:20])
print(label[::-1])
updated = "M" + label[1:]
print(updated)
print(label)
Verwachte uitvoer
D
T
ELF
DELFT
TFLED
MELFT
DELFT

Een string is onveranderlijk: je kunt niet met label[0] = "M" een positie overschrijven. Je kunt wel een nieuwe string maken door stukken met + samen te voegen. Het voorbeeld plakt de M vóór alles vanaf positie één en bewaart die nieuwe waarde in updated.

Veelgemaakte fout: een positie bestaat niet

De lengte is vijf, maar positie vijf bestaat niet: de laatste positie is vier. Deze zelfstandige foutvariant probeert toch die zesde positie te lezen.

Een positie te ver
label = "DELFT"
print(label[5])
Verwachte fout
IndexError: string index out of range

Je ziet IndexError. Ook positie nul bestaat niet bij een lege string. Een slice mag daarentegen een leeg resultaat geven: text[:1] en text[-1:] leveren bij lege invoer beide "" op.

Geef tekst terug aan de aanroeper

Gebruik in de opdrachten de functies die al klaarstaan en geef hun resultaat terug met return. edges geeft een tuple met twee strings terug, zoals je eerder meerdere waarden teruggaf. De andere functies leveren één string op.

Bij replace_first vervangt de meegegeven tekst het eerste codepunt. Alles vanaf positie één blijft staan; bij lege invoer bestaat dat overgebleven deel uit niets. Een lege vervanging verwijdert daardoor alleen het eerste codepunt.

AAN DE SLAG 0/4
1

Lees beide uiteinden

Laat edges een tuple met het eerste en laatste codepunt teruggeven. Bij lege tekst moeten beide onderdelen een lege string zijn.

2

Bewaar het middendeel

Laat without_edges alle tekst zonder het eerste en laatste codepunt teruggeven. Bij nul, één of twee codepunten is het resultaat leeg.

3

Vervang het begin met nieuwe tekst

Laat replace_first het eerste codepunt vervangen door replacement. Behoud de rest; bij lege invoer wordt replacement het hele resultaat.

4

Keer de volgorde om

Laat backwards de codepunten in omgekeerde volgorde teruggeven. Ook een lege string moet een geldige invoer zijn.

Wat je meeneemt

  • Een index leest één positie; nul is de eerste en min één de laatste.
  • Slices kunnen veilig lege tekst opleveren en hebben een uitgesloten eindgrens.
  • Strings blijven onveranderd; samenvoegen en slicen geven een tekstwaarde die je kunt teruggeven.

Hierna verdeel je tekst in onderdelen en voeg je die met een gekozen scheidingsteken weer samen.

main.py
UitvoerPython
›
›_

Hier komt je resultaat.

Voer je code uit en ontdek
wat je hebt gemaakt.

0/4 stappen
EVEN MEEKIJKEN

Bekijk hoe het kan.

Je mag de oplossing bekijken. Deze poging telt dan niet mee als afgeronde les. Met Reset kun je daarna opnieuw zelf oefenen.