Tekst
Contents
1.5. Tekst#
Tekst wordt altijd opgeslagen als een str (string). Om een string te definiëren gebruiken we aanhalingstekens (' ' of " "). Zo weet Python dat de tekens die tussen de aanhalingstekens staan in de string variabele horen en niet zelf de naam van een variabele zijn.
tekst = "Hallo"
tekst2 = 'Hoe gaat het ermee?'
tekst
'Hallo'
tekst2
'Hoe gaat het ermee?'
type(tekst)
str
1.5.1. Operaties#
Ook met string kan je operaties uitvoeren. Zo kan je verschillende strings achter elkaar plakken en kan je een string met een int vermenigvuldigen.
tekst = "Hallo "
tekst2 = 'Hoe gaat het ermee?'
tekst + tekst2
'Hallo Hoe gaat het ermee?'
tekst * 10
'Hallo Hallo Hallo Hallo Hallo Hallo Hallo Hallo Hallo Hallo '
1.5.2. Getallen en str-variabelen#
Andere operaties zijn minder succesvol. Als we bijvoorbeeld een variabele dat opgeslagen is als getal proberen op te tellen bij een str, krijgen we een foutmelding.
tekst = "Hallo, ik ben Freek. Mijn leeftijd is "
leeftijd = 45
tekst + leeftijd
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-12-49ba05220cbe> in <cell line: 1>()
----> 1 tekst + leeftijd
TypeError: can only concatenate str (not "int") to str
1.5.3. Een getal als str#
Om dit netjes te doen, kunnen we het getal ook als str-variabele opslaan. Merk op dat we nu het getal tussen aanhalingstekens zetten, om aan te geven dat we een variabele van het type str aan willen maken.
tekst = "Hallo, ik ben Freek. Mijn leeftijd is "
leeftijd = "45"
tekst + leeftijd
'Hallo, ik ben Freek. Mijn leeftijd is 45'
Als je zo iets doet, kun je niet meer verwachten dat Python deze variabele als getal ziet. Je kunt er bijvoorbeeld geen berekeningen op uitvoeren:
leeftijd = "45"
extra_jaren = "4"
nieuwe_leeftijd = leeftijd + extra_jaren
nieuwe_leeftijd
'454'
1.5.4. Converteren van en naar str#
Of, met de ingebouwde functie str, kunnen we een getal converteren, en gaat het wel goed. Dat is bijvoorbeeld handig als het getal dat we bij de tekst willen voegen uit een berekening komt.
tekst = "Hallo, ik ben Freek. Mijn leeftijd is "
geboortejaar = 1977
jaar = 2022
leeftijd = jaar - geboortejaar
tekst + str(leeftijd)
'Hallo, ik ben Freek. Mijn leeftijd is 45'
Andersom kan ook. Als een getal om de één of andere reden als str opgeslagen staat, kunnen we er met de int- of float-functie weer een echt getal van maken.
leeftijd = "45"
extra_jaren = "4"
nieuwe_leeftijd = int(leeftijd) + int(extra_jaren)
nieuwe_leeftijd
49
Voor komma-getallen gebruiken we natuurlijk float.
temperatuur = "20.6"
stijging = "3.5"
nieuwe_temperatuur = float(temperatuur) + float(stijging)
nieuwe_temperatuur
24.1
Als we dat niet doen, krijgen we namelijk een foutmelding.
temperatuur = "20.6"
stijging = "3.55"
nieuwe_temperatuur = int(temperatuur) + int(stijging)
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-35-f0a80fb16226> in <cell line: 1>()
----> 1 nieuwe_temperatuur = int(temperatuur) + int(stijging)
ValueError: invalid literal for int() with base 10: '20.6'
Wanneer je verwacht dat je een komma-getal naar een geheel getal moet converteren, kun je de functie round() gebruiken. Maar de round() functie werkt niet direct op een str, dus eerst nog wel naar een komma-getal converteren!
round(stijging)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-36-53746dd803b2> in <cell line: 1>()
----> 1 round(stijging)
TypeError: type str doesn't define __round__ method
nieuwe_temperatuur = round(float(temperatuur)) + round(float(stijging))
nieuwe_temperatuur
25