Salta al contenuto
Note per Studenti Tipi numerici ed espressioni

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 −∞-\infty) 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

  • int op int → int (tranne / → float).
  • Se un operando è float, il risultato è float: 2 * 3.0 == 6.0.
  • int ** int negativo → float: 2 ** -1 == 0.5.

Precedenza (dalla più alta)

  1. ** (associativo a destra: 2 ** 3 ** 2 == 2 ** 9)
  2. +x, -x unari (-2 ** 2 == -4)
  3. *, /, //, %
  4. +, -
  5. confronti <, <=, ==, !=, >, >=, in, is
  6. not
  7. and
  8. or

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 pari

Modulo 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 predefinite

Errori tipici