Lecții din modul (3/4)
Numerele și modulul de matematică
Python distinge două tipuri numerice fundamentale: int (precizie arbitrară
numere întregi — fără depășire) și float (virgula mobilă pe 64 de biți, dublu
precizie).
type(42) # <class 'int'>
type(3.14) # <class 'float'>
type(10 ** 100) # <class 'int'> — interi grandi a piacereOperatori aritmetici
| Op | Înțeles | Exemplu | Rezultat |
|---|---|---|---|
+ | adaos | 2 + 3 | 5 |
- | scădere | 5 - 2 | 3 |
* | produs | 4 * 3 | 12 |
/ | adevarat impartire | 10 / 4 | 2.5 |
// | întreg împărțire | 10 // 4 | 2 |
% | modulo (restul) | 10 % 3 | 1 |
** | putere | 2 ** 10 | 1024 |
Avertisment: / returnează întotdeauna un float, chiar și cu două numere întregi (10 / 2
returnează 5.0, nu 5). Pentru împărțirea întregului, utilizați //.
10 / 4 # 2.5
10 // 4 # 2
-7 // 2 # -4 (arrotonda verso il basso, non verso lo zero)Încorporate numerice
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]) # 6Modulul math
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) # 6Capcana plutitorului
Flotante sunt aproximații binare: 0.1 + 0.2 nu este exact egal
0.3.
0.1 + 0.2 # 0.30000000000000004
0.1 + 0.2 == 0.3 # False !Pentru comparații sigure, utilizați math.isclose(a, b) sau, în contexte financiare,
Modulul decimal.
Precizia flotant și modulul zecimal
Flotante în Python sunt implementate ca numere cu virgulă mobilă cu precizie dublă (standard IEEE 754). În consecință, calcule precum 0.1 + 0.2 nu produc exact 0.3, ci mai degrabă 0.30000000000000004. Dacă aveți nevoie de precizie matematică absolută (de exemplu, pentru aplicații financiare), utilizați modulul decimal al bibliotecii standard.
Încearcă
Având în vedere `secunde = 3725`, calculați `ore`, `minute`, `secunde_rămase` folosind // și %. Evaluați tuplul `(ore, minute, secunde_rămase)`.
Afișează indiciu
// face împărțirea întregului, % restul.
Soluție disponibilă după 3 încercări
Exercițiu de revizuire
Având în vedere `raza = 5`, calculați aria cercului în `zonă` folosind math.pi. Evaluați „zona” rotunjită la 2 zecimale cu rotunjire.
Afișează indiciu
math.pi * raza ** 2
Soluție disponibilă după 3 încercări
Provocare suplimentară
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.
Afișează indiciu
math.sqrt(16) returnează 4,0. round(3.74) returnează 4. Însumează-le și atribuie total_val.
Soluție disponibilă după 3 încercări