Wiskundige operatoren in Python (Arithmetic Operators)
Wiskundige operatoren worden gebruikt om bewerkingen uit te voeren op variabelen en waarden. In deze uitleg gebruiken we voornamelijk de Engelstalige benamingen omdat je ze in de praktijk ook enkel in het Engels tegen zult komen.
De toepassingen van wiskundige operatoren
Je kunt de operaties/bewerkingen uitvoeren op verschillende gegevenstypes. De drie meest voorkomende data types waar je de wiskundige operatoren op zult gebruiken zijn de volgende:
- Strings: Dit zijn tekstelementen en worden omringd door enkele of dubbele aanhalingstekens.
- Integers: Integers zijn gehele getallen.
- Floating points numbers: Dit zijn kommagetallen. Hier wordt doorgaans ook naar verwezen als ‘floats’. Floats worden gekenmerkt door een punt in het getal. Laat je dus niet misleiden door de naam kommagetal. In het onderstaande stuk code zie je wat de resultaten zijn bij het verwisselen van punten en komma’s bij de bewerkingen.
>>>print(6,0+6,6)
6 6 6
>>>print(6.0+6,6)
12.0 6
>>>print(6.0+6.0)
12.0
Om te achterhalen tot welke class het datatype behoort kun je het object omringen met de type()-function. Dit ziet er in de praktijk als volgt uit:
>>>print(type('Honderd'))
<class 'str'>
>>>print(type(100))
<class 'int'>
>>>print(type('100'))
<class 'str'>
>>>print(type('100.0'))
<class 'float'>
Operator | Naam | Formule | Voorbeeld |
+ | Optellen | X + Y | 2+3=5 |
– | Aftrekken | X – Y | 5-3=2 |
* | Vermenigvuldigen | X * Y | 2*3=6 |
/ | Delen | X / Y | 6/3=2 |
% | Modulo-operatie | X % Y | 100%3=1 |
** | Machtsverheffingen | X ** Y | 5**3=125 |
// | Vloerdeling | X // Y | 19//6=3 |
( ) | Haakjes | (X+Y)*Z | 10+5+(10*10)=115 |
- Optellen: Werkt volgens de standaard regels uit de wiskunde. Je kunt geen strings en getallen optellen. print(‘vijf’+5) geeft een error. Maar print(‘vijf’+’5’) geeft als output ‘vijf5’.
- Aftrekken: Voor aftrekken gelden dezelfde regels als voor optellen wat betreft de verschillende classes.
- Delen: Een deling zal altijd een floating point number (kommagetal) als output geven. Zelfs wanneer ronde getallen zoals 120 door 10 deelt geeft dit de waarde 12.0 terug.
- Modulo-operatie: De modulo-operatie is ook bekend onder de naam ‘rest’-bewerking. Bij deze operatie deel je getal X het maximale aantal keer door getal Y en krijg je het getal terug dat overblijft. Zo geeft ’65 % 4′ het getal 1 als output. Het getal 4 gaat 16 keer (64) in 65, en dan blijft er 1 over, vandaar 1 als output.
- Machtsverheffing: Dit is niets meer dan de standaard machtsverheffingen uit de wiskunde. Naast de dubbele asterisks wordt ook wel
pow(x, y)
gebruikt, waar de parameters x tot de macht y stellen. - Vloerdeling: Een vloerdeling geeft het integrale deel van het quotiënt terug. Dit wil zeggen dat het slechts terugkeert hoe vaak een getal Y uit X gaat voordat het gedeeld wordt.
- Haakjes: Operaties tussen haakjes worden eerst afzonderlijk uitgevoerd. Om de volgorde van een som extra vorm te geven zou je in de normale wiskunde na haakjes ook vierkante haakjes kunnen gebruiken. In Python kan dit niet. In Python dien je extra normale haakjes toe te voegen. Zie het verschil in het onderstaande voorbeeld:
>>>print(((10+1)*5)+(10*10))
155
>>>print((10+1*5)+(10*10))
115
De volgorde waarin de operaties worden uitgevoerd is als volgt:
1. Haakjes
2. Vermenigvuldiging / Delen
3. Optellen / Aftrekken
Wiskundige operatoren en tekst
Je kunt de wiskundige operatoren op 2 manieren toepassen op ‘string’ data typen.
- String concatenation: Door het plusteken tussen twee strings te zetten kun je ze met elkaar verbinden. Let er hierbij op dat Python zelf niet automatisch een spatie tussen de elementen zet.
- String replication: Je kunt door het vermenigvuldingsteken te gebruiken een string herhalen.
>>>print('Jaap'+'leert'+'Python')
JaapleertPython
>>>print('Jaap' * 5)
JaapJaapJaapJaapJaap
Goed om te weten
- Het maakt in Python niet uit of er een spatie tussen de variabele of waarde en de operator zit. Python begrijpt zowel ‘5 + 5’ als ‘5+5’.
- Wanneer je een kommagetal en een heel getal combineert in een formule dan converteert Python dit automatisch naar het juiste datatype om de bewerking te kunnen verrichten.
- Je kunt in een operatie oneindig veel getallen invoeren. De enige mogelijke beperkingen zijn het geheugen en de rekenkracht van het apparaat dat de bewerking uit moet voeren. Bij wetenschappelijke berekeningen kan een float de letter ‘e’ toevoegen.
- Let goed op of de wiskundige bewerkingen die je wilt verrichten plaatsvinden op het juiste data type. Wanneer je een optel bewerking verricht op twee strings dan worden deze aan elkaar geplakt. Bij floats of integers worden de getallen bij elkaar opgeteld.
>>>print('1'+'20')
120
>>>print(1+20)
21
- Het is in Python niet mogelijk om direct wiskundige bewerkingen op getallen in een tekstvariabele te verrichten. Voorbeeld:
>>>print('500'*3)
500500500
Wat hier gebeurt is dat de waarde 3 er voor zorgt dat het woord 500 driemaal uitgeprint wordt. Je kunt dit voorkomen door het woord 500 eerst te converteren naar een integer(getal) door ‘int()’ om de string ‘500’ te plaatsen.
>>>print(int('500')*4)
2000
Python kent verschillende mogelijke operaties. Bekijk de uitgebreide informatie over operatoren:
- Assignment operators (Toewijzingsoperatoren)
- Comparison operators (Vergelijkingsoperatoren)
- Logical operators (Logische operatoren)
- Identity operators (Identiteitsoperatoren)
- Membership operators (Lidmaatschapsoperatoren)
- Bitwise operators (Bitwise operatoren)