Python Cursus - Strings

Meteen naar de Afsluitende Opgaven over Strings
Terug naar de cursus pagina

Hoofdstuk 10 - Strings


In computerprogramma's worden teksten weergegeven door strings. In dit hoofdstuk leer je over strings en de functies die beschikbaar zijn om strings aan te pakken.


10.1 Omgaan met strings

We hebben al iets over strings geleerd. Een string is een tekst, met daaromheen enkele of dubbele aanhalingstekens. Een string kan nul of meer tekens lang zijn. Je kunt twee strings aan elkaar plakken met behulp van de +, en zichzelf herhalen door middel van de *. Bijvoorbeeld:

De lengte van een string kun je bepalen met de len() functie. Met in kun je testen of een letter in een string voorkomt.

10.2.1 Strings over meerdere regels

In Python kunnen strings meerdere regels beslaan, bijvoorbeeld als je een erg lange string in je programma hebt. In Python gebruik je drievoudige aanhalingstekens om strings over meerdere regels te spreiden:

10.2.2 Newline in een string

Een "newline" teken geeft aan dat er pas op een nieuw regel verder gegaan moet worden met printen. Dit geef je in de code aan met '\n'. Bijvoorbeeld, print("a\nb") drukt 'a' op de ene regel af, en 'b' op een volgende regel.

Opgave 10.2.2 Newline

Klik hier voor een uitwerking.

10.3.1 String indices

Ieder teken in een string heeft een positie (dit heet een index). De positie begint bij 0 en loopt op tot en met de lengte van de string min 1.

Het woord "python" heeft lengte 6. De 'p' zit op positie 0, 'y' op positie 1 en 'n' op positie 5.

Als een string is opgeslagen in een variabele, dan kun je de individuele letters van de string krijgen via de variabele naam en de index van de gevraagde letter tussen vierkante haken [ ]. Bijvoorbeeld:

Opgave 10.3.1 Letters uit een woord

String slicing

Je kunt een string ophakken in delen, dat heet slicing. Je geeft dan aan vanaf welke en tot welke index je wilt hebben (let op: dus niet tot en met). In het voorbeeld hieronder wordt de tekst gepakt vanaf index 1 (dus letter 'y') tot index 4 (dus tot en met index 3 dus letter 'h'):

10.3.2 Strings doorlopen

Je kunt de tekens van een string doorlopen met een for loop:

Opgave 10.3.2a Dagen van de week verkort

Klik hier voor de uitwerking.

Opgave 10.3.2b Print klinkers uit woorden in een lijst

Klik hier voor de uitwerking.

Opgave 10.3.2c aantal voorkomens in een woord

Deze opdracht wordt nog niet automatisch gecontroleerd. Klik hier om je eigen oplossing te vergelijken met een model oplossing.

Als je een string aanpast terwijl je het doorloopt (bijvoorbeeld letters eruit halen), dan gebruik je een while loop:

10.4 string methodes

Er zijn een aantal methodes beschikbaar om strings te bewerken. Na het bewerken van een string moet je deze opslaan in een variabele. Dat komt omdat strings onveranderbaar zijn.

10.4.1 strip()

strip() verwijdert spaties aan het begin en einde van een string, inclusief eventuele "newline" tekens en andere tekens die als spaties gezien kunnen worden. Zo roep je de functie aan: variabelnaam.strip(). Het resultaat moet je dan in een variabele opslaan, vandaar tekst = .

In dit voorbeeld gebruiken de '[' en ']' om duidelijk te laten zien welke tekens 'gestript' worden. Zoals je ziet gebruiken we tekst =

Je kunt deze functie ook gebruiken om andere tekens te verwijderen: de tekens die je wilt verwijderen geef je dan tussen aanhalingstekens mee als parameter.

Opgave 10.4.1 strip()

Voor deze opdracht is geen model oplossing beschikbaar.

10.4.2 upper() en lower()

upper() creëert een versie van een string met alle letters als hoofdletters. lower() werkt op dezelfde manier, maar maakt van alle letters kleine letters. Je moet het resultaat wel in een variabele opslaan, want de oorspronkelijke tekst wordt niet aangepast.

Opgave 10.4.2 upper() en lower()

Klik hier voor de uitwerking.

10.4.3 find()

find() kun je gebruiken om in een string te zoeken naar bepaald deelstring. Je krijgt dan de index waarop de substring begint. Als de substring niet voorkomt, wordt -1 opgeleverd.

Opgave 10.4.3 find()

Klik hier voor een voorbeeld uitwerking.

10.4.4 replace()

replace() vervangt alle voorkomens van een substring door een andere substring. Als parameters krijgt het de substring die gezocht wordt, en de substring die als vervanging dient.

Ik wil hier nogmaals benadrukken dat strings onveranderbaar zijn, dus de replace() functie maakt niet echt vervangingen in de string; hij retourneert een nieuwe string die een kopie is van de originele string, waarbij de vervangingen zijn gemaakt.

Opgave 10.4.4 replace()

Klik hier voor de uitwerking.

10.5 ASCII

Computers gebruiken een manier om tekens te coderen. Vrijwel ieder systeem ondersteund wordt is de standaard ASCII code. Hieronder zie je de ASCII tabel. De hexadecimale code voor ieder teken staat naast de decimale code.

ASCII tabel

ASCII tabel

Zoals je kunt zien heeft ieder teken een getal. Om in een Python programma te achterhalen wat het nummer is van een teken, kun je de ord() functie gebruiken. ord('A'), bijvoorbeeld, retourneert het nummer van 'A', dat 65 is, zoals je kunt zien. De tegenhanger van ord() is de chr() functie. chr() krijgt een nummer als argument, en retourneert het teken dat hoort bij dat nummer. Bijvoorbeeld, chr(65) is de letter 'A'.

Opgave 10.5.1 Het alfabet afdrukken

Klik hier voor de uitwerking.

Wat je geleerd hebt

In dit hoofdstuk is het volgende besproken:
Meteen naar de Afsluitende Opgaven over Strings
Terug naar de cursus pagina