Python Cursus - Strings
Meteen naar de Afsluitende Opgaven over StringsTerug 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.
- De lengte van een string
woord
kun je berekenen metlen(woord)
. - De eerste letter van een string staat op positie 0.
- De laatste letter van de string heeft dus index
len(woord)-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
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
- Waar strings voor gebruikt worden
- Hoe je strings over meerdere regels kunt gebruiken
- Hoe een index (posities van letters) bij een string werkt, en hoe je dus door de tekens van een string kan lopen
- Hoe je substrings uit strings kunt halen
- De volgende string methodes gebruiken:
strip()
,upper()
,lower()
,find()
,replace()
,split()
,+
- Dat strings onveranderbaar zijn, dus als je een string functie gebruikt, je een nieuw variabele moet maken om het resultaat in op te slaan.
- Hoe je de ASCII waarde van een teken kunt krijgen met
ord()
, of andersomchr()
Meteen naar de Afsluitende Opgaven over Strings
Terug naar de cursus pagina