Tot nu toe gebruikten de meeste voorbeelden en opgaves getallen. Je hebt je misschien afgevraagd of programmeren vooral bedoeld is voor het manipuleren van getallen. In het dagelijks leven is het veel gebruikelijker om met tekstuele informatie om te gaan. De reden dat de omgang met teksten was uitgesteld tot nu, is dat in programmeertalen het veel gemakkelijker is om met getallen om te gaan dan met teksten.
Een string is tekst, die omsloten is door enkele of dubbele aanhalingstekens. Bovendien mag een streng iedere lengte hebben, inclusief nul (tekens lang). Je weet ook al dat je twee strings aan elkaar kunt plakken met +
en dat je een string zichzelf kunt laten herhalen doormiddel van de *
.
Probeer zelf nog eens volgende:
s1 = "appel"
s2 = 'banaan'
print( s1 )
print( s2 )
print( s1 + s2 )
print( 3 * s1 )
print( s2 * 3 )
print( 2 * s1 + 2 * s2 )
len
functiede len
(length) functie neemt 1 argument die een string moet zijn en geeft je de lengte van die string.
Probeer zelf eens:
s1 = "appel"
s2 = 'banaan'
print( len(s1) )
print( len(s2) )
print( len(s1 + s2) )
print( len(3 * s1) )
Net zoals je een reeks getallen kan doorlopen met behulp van for i in range(10)
bijvoorbeeld. Kan je ook alle elementen van een string doorlopen. Dit is handig als je bijvoorbeeld elke letter van een woord wilt onderzoeken (e.g. tellen hoeveel klinkers er zijn). Dit kan je doen a.d.h.v. de in
operator.
De syntax zal zijn:
for el in s:
# acties
met s
een string en el
de variabelen die alle elementen van de string zal doorlopen.
Probeer zelf eens:
s = "banaan"
for el in s:
print(el)
Tevens kunnen we ook met de de in
operator controleren of een string voorkomt in een andere string.
Probeer zelf eens:
s = "banaan"
if "a" in s:
print("De letter a zit in de string")
else:
print("De letter a zit niet in de string")
Een complexer voorbeeld dat beide combineert:
s1 = "mango"
s2 = "banaan"
for letter in s1:
if letter in s2:
print( s1, "en", s2, "bevatten beide de letter", letter )
.upper()
en .lower()
Alle bewerkingen die we tot nu toe zagen waren ofwel met operatoren zoals +
, *
etc. Of met functies zoals abs()
, max()
etc. In programmeer talen bestaat er ook zoiets als methodes. Later zal de theoretische achtergrond duidelijker worden. Echter is nu enkel de syntax belangrijk. Ze worden niet zoals functie gebruikt (functienaam(argument1, argument2, ...)
) maar volgen volgende syntax: object.methodenaam()
.
De methode .upper()
en .lower()
worden toegepast op een string en geven respectievelijk de string in uppercase (hoofdletters) terug en lowercase (kleine letters) terug. Er dient genoteerd te worden dat het object zelf niet aangepast wordt maar een nieuw object teruggeeft.
Probeer zelf:
s = "The Meaning of Life"
print( s )
print( s.upper() )
print( s.lower() )
s = "TesTen & Uitproberen"
print( s )
print( s.upper() )
print( s.lower() )
.replace()
replace() vervangt alle instanties van een substring in een string door een andere substring. Als parameters krijgt het de substring die gezocht wordt, en de substring die als vervanging dient. Optioneel kan een derde, numerieke parameter meegegeven worden die aangeeft hoe vaak een vervanging moet plaatsvinden.
s = ' Humpty Dumpty zat op de muur '
print( s.replace( ' zat op ' , ' viel van ' ) )
s = 'een eendje eet veel eten'
print( s.replace( 'e' , 'x' ) )
s = 'een eendje eet veel eten'
print( s.replace( 'e' , 'x', 2 ) )