Salt la conținutul principal
Modulul 4 · Lecția 3 din 415/36 în curs~10 min
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).

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

Operatori aritmetici

OpÎnțelesExempluRezultat
+adaos2 + 35
-scădere5 - 23
*produs4 * 312
/adevarat impartire10 / 42.5
//întreg împărțire10 // 42
%modulo (restul)10 % 31
**putere2 ** 101024

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 //.

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

Încorporate numerice

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

Modulul math

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

Capcana plutitorului

Flotante sunt aproximații binare: 0.1 + 0.2 nu este exact egal 0.3.

Python
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ă

Exercițiu#python.m4.l3.e1
Încercări: 0Se încarcă…

Având în vedere `secunde = 3725`, calculați `ore`, `minute`, `secunde_rămase` folosind // și %. Evaluați tuplul `(ore, minute, secunde_rămase)`.

Se încarcă editorul...
Afișează indiciu

// face împărțirea întregului, % restul.

Soluție disponibilă după 3 încercări

Exercițiu de revizuire

Exercițiu#python.m4.l3.e2
Încercări: 0Se încarcă…

Având în vedere `raza = 5`, calculați aria cercului în `zonă` folosind math.pi. Evaluați „zona” rotunjită la 2 zecimale cu rotunjire.

Se încarcă editorul...
Afișează indiciu

math.pi * raza ** 2

Soluție disponibilă după 3 încercări

Provocare suplimentară

Exercițiu#python.m4.l3.e3
Încercări: 0Se încarcă…

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.

Se încarcă editorul...
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