Skip to content

Matematica

Gli operatori base (+, -, *, /, **) coprono la maggior parte dei calcoli quotidiani. Ma appena ti servono radici quadrate, logaritmi, seno e coseno, o il valore di pi greco, hai bisogno del modulo math.

import math # Importa il modulo matematica

import math
print(math.pi) # 3.141592653589793 — il pi greco (π)
print(math.e) # 2.718281828459045 — il numero di Nepero (base dei logaritmi naturali)
print(math.inf) # inf — infinito (utile per confronti)
print(math.nan) # nan — "Not a Number" (risultato di operazioni non valide)

import math
print(math.floor(3.7)) # 3 — arrotonda VERSO IL BASSO (piano inferiore)
print(math.ceil(3.2)) # 4 — arrotonda VERSO L'ALTO (piano superiore)
print(round(3.5)) # 4 — arrotondamento standard (già disponibile senza math)
print(math.trunc(3.9)) # 3 — tronca la parte decimale (butta via i decimali)

Analogia: pensa ai piani di un edificio. floor ti porta al piano di sotto, ceil a quello di sopra.


import math
print(abs(-5)) # 5 — funzione già disponibile senza math
print(math.fabs(-5.0)) # 5.0 — versione di math (restituisce sempre un decimale)

Il valore assoluto è la “distanza da zero” — elimina il segno negativo.


import math
print(math.sqrt(16)) # 4.0 — radice quadrata (√16 = 4)
print(math.sqrt(2)) # 1.4142135... — radice quadrata di 2
print(math.pow(2, 10)) # 1024.0 — potenza (2^10), equivalente a 2**10 ma restituisce float
print(math.isqrt(17)) # 4 — radice quadrata intera (tronca, senza decimali)

import math
# Esponenziale: e elevato alla x
print(math.exp(1)) # 2.718... — e^1
print(math.exp(2)) # 7.389... — e^2
# Logaritmo naturale (base e)
print(math.log(math.e)) # 1.0 — logaritmo naturale di e
# Logaritmo in base personalizzata
print(math.log(100, 10)) # 2.0 — log base 10 di 100 (quanto è 10^x = 100? Risposta: 2)
print(math.log10(1000)) # 3.0 — scorciatoia per log base 10
print(math.log2(8)) # 3.0 — scorciatoia per log base 2 (2^3 = 8)

Le funzioni trigonometriche lavorano in radianti, non in gradi. Python include funzioni di conversione:

import math
# Converti gradi ↔ radianti
print(math.radians(180)) # 3.14159... (180 gradi = π radianti)
print(math.degrees(math.pi)) # 180.0
# Seno, coseno, tangente
print(math.sin(math.pi / 2)) # 1.0 — seno di 90°
print(math.cos(0)) # 1.0 — coseno di 0°
print(math.tan(math.pi / 4)) # 1.0 — tangente di 45°

import math
print(math.gcd(12, 8)) # 4 — Massimo Comune Divisore (MCD)
print(math.lcm(4, 6)) # 12 — Minimo Comune Multiplo (MCM) [Python 3.9+]
print(math.factorial(5)) # 120 — fattoriale: 5! = 5×4×3×2×1

Spesso usato insieme a math, il modulo random genera numeri casuali — utile per giochi, simulazioni, e molto altro:

import random
print(random.random()) # Numero decimale casuale tra 0.0 e 1.0
print(random.randint(1, 10)) # Numero intero casuale tra 1 e 10 (inclusi)
print(random.uniform(1.0, 5.0)) # Numero decimale casuale tra 1.0 e 5.0
lista = [1, 2, 3, 4, 5]
print(random.choice(lista)) # Elemento scelto a caso dalla lista
random.shuffle(lista) # Mescola la lista in ordine casuale
print(lista) # Esempio: [3, 1, 5, 2, 4]

import math
def area_cerchio(raggio):
# Formula: π × r²
return math.pi * raggio ** 2
def ipotenusa(cateto_a, cateto_b):
# Teorema di Pitagora: c = √(a² + b²)
return math.sqrt(cateto_a ** 2 + cateto_b ** 2)
print(f"Area cerchio (r=5): {area_cerchio(5):.2f}") # 78.54
print(f"Ipotenusa (3, 4): {ipotenusa(3, 4):.2f}") # 5.00