Esistono quattro tipi numerici distinti; interi semplici, interi long, numeri in virgola mobile e numeri complessi. In aggiunta, i Booleani vengono considerati un sotto tipo di interi semplici. Gli interi semplici (chiamati anche solo interi, interi) vengono implementati usando long in C, che d� loro come minimo 32 bit di precisione. Gli interi long hanno una precisione illimitata. I numeri in virgola mobile vengono implementati usando double in C. Tutti i puntatori alla loro precisione vengono disattivati fino a che non � nota la macchina su cui si sta lavorando.
I numeri complessi hanno una parte reale ed una parte immaginaria,
implementate usando double in C. Per estrarre queste
parti da un numero complesso z, si usa z.real
e z.imag.
I numeri vengono creati da costanti numeriche o come il risultato di funzioni ed operatori built-in. Costanti numeriche intere semplici (inclusi numeri esadecimali e ottali) restituiscono interi semplici fino a che il valore che denotano � troppo grande per essere rappresentato come tale, in quel caso viene restituito un intero long. Le costanti numeriche intere con il suffisso "L" o "l" restituiscono interi long ("L" viene preferito perch� "1l"sembra troppo simile al numero undici!). Le costanti numeriche contenenti un punto decimale o un segno esponenziale restituiscono numeri in virgola mobile. L'aggiunta di "j" o "J" ad una costatnte numerica restituisce un numero complesso con la parte reale uguale a zero. Una costante numerica complessa � la somma di una parte reale ed una parte immaginaria.
Python supporta pienamente gli aritmetici misti: quando un operatore binario aritmetico ha operandi di differente tipo numerico, l'operando con il tipo ``narrower'' (NdT:stretto) viene allargato a quello dell'altro, dove l'intero semplice � pi� stretto di quello intero long, a sua volta pi� stretto di quello in virgola mobile, a sua volta ancora pi� stretto di quello complesso. Il confronto tra numeri di tipi misti usa le stesse regole. 2.6I costruttori int(), long(), float() e complex() possono essere usati per produrre numeri di un tipo specifico.
Tutti i tipi numerici (eccetto i complessi) supportano le seguenti operazioni, ricapitolate per priorit� ascendente (le operazioni nello stesso box hanno la stessa priorit�; tutte le operazioni numeriche hanno una priorit� pi� alta rispetto a quelle di confronto):
| Operazione | Risultato | Note |
|---|---|---|
x + y |
somma di x e y | |
x - y |
sottrazione di y a x | |
x * y |
moltiplicazione di x per y | |
x / y |
quoziente di x per y | (1) |
x % y |
resto di x / y |
(4) |
-x |
x negativizzato | |
+x |
x immutato | |
abs(x) |
valore assoluto della magnitudo di x | |
int(x) |
x conversione in intero | (2) |
long(x) |
x conversione in intero long | (2) |
float(x) |
x conversione in virgola mobile | |
complex(re,im) |
un numero complesso con una parte reale re ed una parte immaginaria im. Il valore predefinito di im � zero. | |
c.conjugate() |
coniugazione del numero complesso c | |
divmod(x, y) |
la coppia (x / y, x % y) |
(3)(4) |
pow(x, y) |
x elevato alla potenza y | |
x ** y |
x elevato alla potenza y |
Note:
[1, 2] viene
considerata uguale a [1.0, 2.0] e similmente per le tuple.