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).
type(42) # <class 'int'>
type(3.14) # <class 'float'>
type(10 ** 100) # <class 'int'> — interi grandi a piacereRekenkundige operatoren
| Op | Betekenis | Voorbeeld | Resultaat |
|---|---|---|---|
+ | toevoeging | 2 + 3 | 5 |
- | aftrekken | 5 - 2 | 3 |
* | product | 4 * 3 | 12 |
/ | ware divisie | 10 / 4 | 2.5 |
// | geheel deling | 10 // 4 | 2 |
% | modulo (rest) | 10 % 3 | 1 |
** | kracht | 2 ** 10 | 1024 |
Waarschuwing: / retourneert altijd een float, zelfs met twee gehele getallen (10 / 2
retourneert 5.0, niet 5). Gebruik voor het delen van gehele getallen //.
10 / 4 # 2.5
10 // 4 # 2
-7 // 2 # -4 (arrotonda verso il basso, non verso lo zero)Numerieke ingebouwde functies
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]) # 6De math module
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) # 6De valkuil van de vlotter
Floats zijn binaire benaderingen: 0.1 + 0.2 is niet precies gelijk
0.3.
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
Gegeven `seconden = 3725`, bereken `uren`, `minuten`, `resterende_seconden` met // en %. Evalueer de tupel `(uren, minuten, resterende_seconden)`.
Toon hint
// doet gehele deling, % de rest.
Oplossing beschikbaar na 3 pogingen
Oefening beoordelen
Gegeven `straal = 5`, berekent u het cirkelgebied in `gebied` met behulp van math.pi. Evalueer 'gebied' afgerond op 2 decimalen met round.
Toon hint
math.pi * straal ** 2
Oplossing beschikbaar na 3 pogingen
Extra uitdaging
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.
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