Tipi numerici ed espressioni
In questa pagina 6
Tipi
| Tipo | Letterali | Note |
|---|---|---|
int |
42, -7, 1_000_000, 0xFF, 0b1010 |
precisione arbitraria |
float |
3.14, 2.0, 1e-3, float("inf") |
IEEE 754 doppia precisione, vedi Rappresentazione binaria dei datiBasi 2, 8 e 16; interi senza segno e in complemento a 2 con overflow; virgola mobile IEEE 754 e sue approssimazioni; caratteri ASCII, Unicode e UTF-8.Rappresentazione binaria dei dati → |
complex |
2+3j, complex(2, 3) |
.real, .imag, abs(z) |
bool |
True, False |
sottotipo di int: True + True == 2 |
Operatori aritmetici
| Operatore | Significato | 7 op 2 |
-7 op 2 |
|---|---|---|---|
+ - * |
somma, differenza, prodotto | 9, 5, 14 | |
/ |
divisione reale, sempre float | 3.5 |
-3.5 |
// |
divisione intera (arrotonda verso ) | 3 |
-4 |
% |
resto, stesso segno del divisore | 1 |
1 |
** |
potenza | 49 |
Vale sempre a == (a // b) * b + a % b. Attenzione: in C la divisione intera tronca verso zero e -7 / 2 vale -3 (vedi Tipi, operatori e controllo del flusso in CTipi interi e reali del C con dimensioni e limiti, conversioni implicite e cast, divisione intera, operatori di incremento, logici e bit a bit; if, switch, while, do-while, for, break e continue.Tipi, operatori e controllo del flusso in C →).
Usi tipici di // e %:
python
n = 1234
ultima_cifra = n % 10 # 4
senza_ultima = n // 10 # 123
pari = n % 2 == 0
ore, minuti = divmod(135, 60) # (2, 15)Tipo del risultato
intopint→int(tranne/→float).- Se un operando è
float, il risultato èfloat:2 * 3.0 == 6.0. int ** intnegativo →float:2 ** -1 == 0.5.
Precedenza (dalla più alta)
**(associativo a destra:2 ** 3 ** 2 == 2 ** 9)+x,-xunari (-2 ** 2 == -4)*,/,//,%+,-- confronti
<,<=,==,!=,>,>=,in,is notandor
Nel dubbio, parentesi.
Conversioni
python
int(3.99) # 3: tronca verso zero
int("42") # 42
int("3.5") # ValueError: la stringa deve essere un intero
float("3.5") # 3.5
str(42) # '42'
round(2.675, 2) # 2.67 (2.675 non è rappresentabile esattamente)
round(2.5), round(3.5) # (2, 4): arrotondamento al pariModulo math
python
import math
math.sqrt(2), math.pi, math.e
math.floor(-2.5), math.ceil(-2.5) # (-3, -2)
math.trunc(-2.5) # -2
math.isclose(a, b, rel_tol=1e-9)
math.gcd(12, 18) # 6
abs(-3), max(1, 5, 2), min(...), sum(lista) # funzioni predefiniteErrori tipici
- Usare
/quando serve un indice intero:lista[n / 2]→TypeErrorperché l'indice è float. Serven // 2. int(input())su un input non numerico →ValueError(gestione in Eccezioni in PythonEccezioni e traceback, eccezioni predefinite più comuni, try/except/else/finally, raise per segnalare errori, propagazione lungo le chiamate.Eccezioni in Python →).- Confrontare float con
==. - Scrivere
x^2per il quadrato:^è lo XOR bit a bit, il quadrato èx ** 2.