Direct naar de hoofdinhoud
Module 4 · Les 3 van 415/36 in de cursus~10 min
Modulelessen (3/4)

Getallen en de wiskundemodule

Python onderscheidt twee fundamentele numerieke typen: int (willekeurige precisie gehele getallen — geen overflow) en float (64-bit drijvende komma, dubbele precisie).

Python
type(42)       # <class 'int'>
type(3.14)     # <class 'float'>
type(10 ** 100)  # <class 'int'>   — interi grandi a piacere

Rekenkundige operatoren

OpBetekenisVoorbeeldResultaat
+toevoeging2 + 35
-aftrekken5 - 23
*product4 * 312
/ware divisie10 / 42.5
//geheel deling10 // 42
%modulo (rest)10 % 31
**kracht2 ** 101024

Waarschuwing: / retourneert altijd een float, zelfs met twee gehele getallen (10 / 2 retourneert 5.0, niet 5). Gebruik voor het delen van gehele getallen //.

Python
10 / 4    # 2.5
10 // 4   # 2
-7 // 2   # -4   (arrotonda verso il basso, non verso lo zero)

Numerieke ingebouwde functies

Python
abs(-5)               # 5
min(3, 1, 2)          # 1
max([3, 1, 2])        # 3   (su iterabile)
round(3.7)            # 4
round(3.14159, 2)     # 3.14
sum([1, 2, 3])        # 6

De math module

Python
import math
math.pi               # 3.141592653589793
math.sqrt(16)         # 4.0
math.floor(3.9)       # 3   (verso meno infinito)
math.ceil(3.1)        # 4   (verso più infinito)
math.log(math.e)      # 1.0
math.gcd(12, 18)      # 6

De valkuil van de vlotter

Floats zijn binaire benaderingen: 0.1 + 0.2 is niet precies gelijk 0.3.

Python
0.1 + 0.2           # 0.30000000000000004
0.1 + 0.2 == 0.3    # False !

Gebruik voor veilige vergelijkingen math.isclose(a, b) of, in financiële contexten, de decimal module.

Zwevende precisie en de decimale module

Floats in Python worden geïmplementeerd als drijvende-kommagetallen met dubbele precisie (IEEE 754-standaard). Bijgevolg leveren berekeningen als 0.1 + 0.2 niet precies 0.3 op, maar eerder 0.30000000000000004. Als u absolute wiskundige precisie nodig heeft (bijvoorbeeld voor financiële toepassingen), gebruik dan de decimal module van de standaardbibliotheek.

Probeer het

Oefening#python.m4.l3.e1
Pogingen: 0Laden…

Gegeven `seconden = 3725`, bereken `uren`, `minuten`, `resterende_seconden` met // en %. Evalueer de tupel `(uren, minuten, resterende_seconden)`.

Editor laden…
Toon hint

// doet gehele deling, % de rest.

Oplossing beschikbaar na 3 pogingen

Oefening beoordelen

Oefening#python.m4.l3.e2
Pogingen: 0Laden…

Gegeven `straal = 5`, berekent u het cirkelgebied in `gebied` met behulp van math.pi. Evalueer 'gebied' afgerond op 2 decimalen met round.

Editor laden…
Toon hint

math.pi * straal ** 2

Oplossing beschikbaar na 3 pogingen

Extra uitdaging

Oefening#python.m4.l3.e3
Pogingen: 0Laden…

Import the `math` module. Calculate the square root of `16` using `math.sqrt`, add the result to the rounded value of `3.74` (using `round()`), and store the final sum in `total_val`. Finally, evaluate the variable.

Editor laden…
Toon hint

math.sqrt(16) retourneert 4,0. round(3,74) retourneert 4. Tel ze op en wijs ze toe aan total_val.

Oplossing beschikbaar na 3 pogingen