edubun
Nederlands

Strings: werken met tekst

Python telt de letters van "Python" vanaf 0, dus "Python"[5] is de laatste letter, n, en "Python"[6] is een fout.

Een naamkaartje vraagt om tekst die uit delen is opgebouwd

Denk aan naamkaartjes bij een schoolevenement of clubbijeenkomst. Elk kaartje heeft dezelfde indeling en een andere naam, dus een programma kan ze vanuit één patroon afdrukken. Tekst in Python is een string en de snelste manier om die uit delen op te bouwen is een f-string: zet de letter f vóór het openingsaanhalingsteken en variabelenamen tussen accolades. Python vervangt elke {name} door de waarde van die variabele.

name = "Mina"
club = "Robotica"
print(f"Hallo, {name}!")
print(f"{name} werd lid van {club}.")
Uitvoer
Hallo, Mina!
Mina werd lid van Robotica.

Er zijn twee oudere manieren om tekst samen te voegen. De operator + plakt strings achter elkaar en * herhaalt een string. Beide kanten van + moeten strings zijn, dus een getal moet eerst met str() naar tekst worden omgezet. f-strings doen dat automatisch, een reden waarom ze de gebruikelijke keuze zijn.

item = "gimbap"
count = 2
print(item + " x " + str(count))
print("-" * 12)
print(f"{item} x {count}")
Uitvoer
gimbap x 2
------------
gimbap x 2

Elk teken heeft een positienummer, vanaf 0

Een string is een rij tekens en elk teken heeft een index. Het eerste teken heeft index 0, niet 1. Vierkante haken kiezen één teken: word[0] is het eerste. Negatieve indices tellen vanaf het einde, dus word[-1] is altijd het laatste teken, ongeacht de lengte. len() geeft het aantal tekens, inclusief spaties en leestekens.

Indices voor "Python": 0 tot 5 vanaf het begin, -6 tot -1 vanaf het einde. Een slice word[0:2] stopt vóór index 2.
word = "Python"
print(word[0], word[5], word[-1])
print(len(word))
print(word[0:2], word[2:])
Uitvoer
P n n
6
Py thon

word[0:2] is een slice: vanaf index 0 tot vlak vóór index 2, wat "Py" geeft. Laat het einde weg, zoals word[2:], en de slice loopt tot het einde van de string. De stop-vóór-regel oogt eerst vreemd, maar betekent dat word[0:2] + word[2:] altijd het hele woord teruggeeft.

Stringmethoden geven een nieuwe string terug

Strings hebben ingebouwde hulpmiddelen, methoden genoemd, die je na een punt schrijft. upper() en lower() zetten tekst om naar hoofdletters of kleine letters, replace(old, new) vervangt elk exemplaar van een stuk tekst door een ander stuk en strip() verwijdert spaties aan beide uiteinden, handig bij extra spaties in formulierinvoer. Het sleutelwoord in controleert of een string in een andere voorkomt en geeft True of False. Geen van deze verandert de oorspronkelijke string. Een string kan na het maken niet meer worden veranderd; elke methode geeft een nieuwe terug, die je bewaart door haar aan een naam toe te kennen.

menu = "  tteokbokki  "
clean = menu.strip()
print(clean.upper())
print(clean.replace("k", "K"))
print("bok" in clean, len(menu), len(clean))
Uitvoer
TTEOKBOKKI
tteoKboKKi
True 14 10

Gebruik de andere soort aanhalingstekens eromheen om een aanhalingsteken in een string te zetten: "Mina's lunch". Een backslash begint een escapereeks: \n in een string betekent ‘begin hier een nieuwe regel’, zodat één print twee regels kan tonen.

print("Het is Mina's lunchtijd.")
print("Regel een\nRegel twee")
Uitvoer
Het is Mina's lunchtijd.
Regel een
Regel twee
f-stringf"...{name}..." zet waarden in tekst
indexPositienummer van een teken, vanaf 0
slices[a:b]: vanaf index a tot, maar niet inclusief, b
len()Aantal tekens in een string
methodeEen hulpmiddel na een punt, zoals s.upper()
\nEscapereeks voor een nieuwe regel
in"a" in "cat" geeft True
  1. Wat drukt deze code af?
    word = "banana"
    print(word[1])
  2. Wat drukt deze code af?
    word = "banana"
    print(word[-2])
  3. Wat drukt deze code af?
    print(len("Hoi daar!"))
  4. Wat drukt deze code af?
    word = "school"
    print(word[1:4])
  5. Wat drukt deze code af?
    name = "Jun"
    print(f"Hi {name}, you are {13 + 1}.")
  6. Wat drukt deze code af?
    print("ab" * 3)
  7. Wat drukt deze code af?
    s = "hallo"
    s.upper()
    print(s)
    • HALLO
    • hallo
    • Hallo
    • Een fout
  8. Wat drukt deze code af?
    print("rice" in "fried rice")
  9. Wat drukt deze code af?
    name = "Mina"
    print(f"{name}")
    print("{name}")
    • Mina
      Mina
    • Mina
      {name}
    • {name}
      Mina
    • {name}
      {name}
  10. Wat drukt deze code af?
    print("Totaal: " + str(3 * 1000))
    • Totaal: 3000
    • Totaal: 3 * 1000
    • Totaal: 31000
    • Een fout
Veelgemaakte fouten
  • ‘De eerste letter is word[1].’ Indices beginnen bij 0, dus word[1] is de tweede letter. De laatste geldige index is len(word) - 1; "Python"[6] stopt met IndexError: string index out of range.
  • "Age: " + 15 drukt Age: 15 af Een string en een int kun je niet met + samenvoegen. Python stopt met TypeError: can only concatenate str (not "int") to str. Gebruik str(15) of een f-string.
  • ‘Ik kan één letter veranderen met word[0] = "J".’ Strings kunnen niet ter plekke veranderen: TypeError: 'str' object does not support item assignment. Bouw in plaats daarvan een nieuwe string, bijvoorbeeld "J" + word[1:].
Voor de docentVanaf 0 tellen vraagt een afbeelding, geen regel. Teken vakjes met nummers erboven en eronder, zoals in de figuur, en laat leerlingen word[2] en word[-2] aanwijzen vóór het typen. Slices worden gemakkelijker als ze de nummers als hekken tussen vakjes zien in plaats van labels erop. De upper()-valkuil (een methode aanroepen zonder het resultaat te bewaren) keert terug bij lijsten, dus besteed er nu even aandacht aan. Bij Koreaanse Windows-lettertypen kan de backslash als wonteken verschijnen; voor Python zijn het dezelfde toets en hetzelfde teken.
Belangrijkste punten
  • f"...{x}..." zet waarden in tekst.
  • Indices beginnen bij 0; -1 is het laatste teken.
  • s[a:b] loopt vanaf a tot, maar niet inclusief, b.
  • Methoden zoals upper() geven een nieuwe string terug; het origineel blijft ongewijzigd.
  • "\n" is een regeleinde binnen een string.
Bronnen van deze cursus (6)
  • Python Software Foundation, The Python Tutorial for Python 3.12 (docs.python.org/3.12/tutorial: 2 Using the Python Interpreter, 3 An Informal Introduction to Python (numbers, text, lists), 4 More Control Flow Tools (if, for, range, break and continue, defining functions, default argument values, 4.10 coding style: 4-space indentation), 5 Data Structures (list methods, 5.5 dictionaries, insertion order), 8 Errors and Exceptions (syntax errors, exceptions, reading the traceback, handling exceptions), 15 Floating-Point Arithmetic (0.1 + 0.2))
  • Built-in Functions (docs.python.org/3.12/library/functions.html: print, input, len, int, float, str, type, round (round half to even: round(0.5) and round(-0.5) are 0, round(1.5) is 2), range, sum, min, max, sorted)
  • Built-in Types (str methods upper, lower, replace, strip; dict.get; list.append, pop, remove, sort returning None)
  • General Python FAQ (docs.python.org/3.12/faq/general.html: Guido van Rossum began Python in the 1989 Christmas holidays, posted it to USENET in February 1991, named it after Monty Python's Flying Circus)
  • Curriculum for the Korean pages: 교육부 고시 제2022-33호 [별책 10] 정보과 교육과정 (PDF read 2026-10-19: 중학교 정보 [9정03-05] 리스트 등 데이터를 순차적으로 저장하는 구조, [9정03-06] 논리 연산과 중첩 제어 구조, [9정03-07] 함수 활용과 디버거로 오류 수정, [9정03-08] 실생활 문제를 프로그래밍으로 해결, 적용 시 고려 사항 「학생의 수준을 고려하여 적합한 프로그래밍 언어를 선정」; 고등학교 정보 [12정03-04] 자료형, [12정03-05] 표준입출력, [12정03-07] 제어 구조)
  • Bug story only: Smithsonian National Museum of American History, Log Book With Computer Bug, 1947, Harvard Mark II, "first actual case of bug being found", probably not Hopper's log book (americanhistory.si.edu/collections/object/nmah_334663, read 2026-10-19)

Geraadpleegd: 2026-10-19