Les 7 heeft drie delen A, B, C die in een willekurige volgorde kunnen worden doorgenomen.
Tot zover hebben we in Python gerekend met de operatoren +
, -
, *
, /
en de functies max
en min
. In deze les zullen we kennis maken met meer operatoren en functies en zullen we leren hoe we meer complexe berekeningen kunnen uitvoeren.
Operatoren uit de wiskunde
We heben reeds kenis gemaakt met de operatoren voor optellen (a + b
), aftrekken (a - b
), vermenigvuldigen (a * b
) en delen (a / b
). We zullen nu drie extra operatoren leren kennen.
- De tot-de-macht-operator
a ** b
berekentab
(a
vermenigvuldigd met zichzelfb
keer). Bijvoorbeeld,2 ** 3
is8
(2×2×2). - De geheeltallige deling-operator
a // b
berekent het "quotiënt" vana
gedeeld doorb
waarbij de rest wordt weggelaten. Bijvoorbeeld,14 // 3
heeft als uitkomst4
, waarbij dus 2 wordt weggelaten. - De modulus-operator
a % b
berekent de rest bija
gedeeld doorb
. Bijvoorbeeld,14 % 3
heeft als uitkomst2
.
De modulus-operator wordt voor een reeks van taken gebruikt. Het kan gebruikt worden om vragen te beantwoorden zoals deze:
- Als het nu 10 uur is, wat is de tijd over 100 uur? (vraagt om modulus 12)
- Is het jaar 2032 een schrikkeljaar? (Dit vraagt om modulus 4, 100, en 400)
De check of een jaar een schrikkeljaar is komt neer op het testen van deelbaarheid; in de volgende oefening vragen we je een programma te schrijven dat gaat over deelbaarheid in het algemeen.
Functies uit de wiskunde
Python kent vrijwel alle wiskundige functies die op een wetenschappelijke rekenmachine te vinden zijn.
sqrt(x)
berekent de wortel van een getalx
.exp(x)
enlog(x)
zijn de exponentiële functie en die van de natuurlijke logaritme.sin(x)
,cos(x)
,tan(x)
maar ook andere trigonometrische functies zijn aanwezig.pi
, de bekende constante uit de wiskunde3.1415...
, is ook aanwezig.
Wanneer je trigonometrische functies uit Python gebruikt, dan moet de hoek x in radialen worden weergegeven, niet in graden. |
Python kent zoveel functies dat ze zijn ondergebracht in groepen die modules worden genoemd. Bovenstaande functies behoren tot de module math
(wiskunde). Voordat je een functie uit een module kunt gebruiken, moet je eerst de module importeren zoals in onderstaand voorbeeld te zien is. Om een functie uit een reeds geïmporteerde module te gebruiken moet je de naam van een module intypen, gevolgd door een punt en dan gevolgd door de naam van de functie.
Een expressie uitrekenen
Zoals je kon zien in de vorige oefening, kun je wiskundige expressies samenstellen door bewerkingen te combineren. Python evalueert de bewerkingen in dezelfde volgorde als in de wiskunde:
Haakjes eerst, dan de Exponenten, gevolgd door Delen en Vermenigvuldigen en tenslotte Optellen en Aftrekken,
die we kunnen onthouden door de afkorting "HEDVOA". Geheeltallig delen en modulus behoren tot de categorie "Delen en Vermenigvuldigen". Bijvoorbeeld, de expressie
3 * (1 + 2) ** 2 % 4wordt als volgt berekend: eerst (1+2 = 3), dan de exponent (3 ** 2 = 9) , dan de vermenigvuldiging (3 * 9 = 27), en tenslotte de modulus (rest bij deling door) waarmee het eindresultaat wordt: 27 % 4 =
3
.
6 - 52 // 5 ** 2
Geheeltallig delen met negatieve getallen: De uitdrukkingen a // b
en int(a / b)
zijn gelijk wanneer a
en b
positief zijn. Maar wanneer a
negatief is zal a // b
"afgerond worden in meer negatieve richting" terwijl int(a / b)
"afgerond zal worden richting 0" (voor negatieve getallen is dat dus in positieve richting).
Gehele getallen en kommagetallen
Het resultaat van een wiskundige expressie is een getal. Zoals we eerder zagen, is elk getal opgeslagen als één van de twee mogelijke types: int
of float
. Het type int
stelt gehele getallen voor, zowel positieve als negatieve, die willekeurig groot kunnen zijn.
Python accepteert geen getallen die geschreven zijn in de vorm 1 000 000 of 1.000.000 of 1,000,000. Tik in plaats daarvan 1000000 . |
Het type float
stelt kommagetallen voor. Zoals een rekenmachine 1/3
opslaat als de benadering 0.33333333
, zal ook Python kommagetallen benaderend opslaan.
Omdat Python benaderingen van kommagetallen gebruikt, zullen bepaalde vergelijkingen die wiskundig juist zijn, niet waar blijken te zijn in Python.
Daarom is het belangrijk om enige tolerantie toe te staan voor deze benaderingen wanneer we getallen van het type float vergelijken. In de interne grader die bij deze website gebruikt wordt, bijvoorbeeld, wordt een float -uitvoer als correct beschouwd wanneer ze bij benadering gelijk is aan het verwachte antwoord. |
We beëindigen deze les met een paar oefeningen.
Gefeliciteerd! Nadat je deze oefeningen hebt afgerond kun je verder met een volgende les.