Vai al contenuto
eLearner.app
Modulo 4 · Lezione 4 di 416/36 nel corso~10 min
Lezioni del modulo (4/4)

Conversioni di tipo

Python è fortemente tipizzato: non somma mai una stringa con un numero senza che tu lo dica. Per passare da un tipo all'altro usi le funzioni costruttore: int(), float(), str(), bool(), list(), tuple(), set().

Python
int("42")        # 42
float("3.14")    # 3.14
str(42)          # '42'
list("abc")      # ['a', 'b', 'c']
tuple([1, 2])    # (1, 2)
set([1, 1, 2])   # {1, 2}

int() con stringhe

int("42") funziona; int("42.5") solleva ValueError. Per stringhe decimali passa prima da float: int(float("42.5"))42 (tronca, non arrotonda).

Python
int("42")         # 42
int("  42  ")     # 42        (strip automatico degli spazi)
int("42.5")       # ValueError
int(float("42.5"))  # 42
int("ff", 16)     # 255       (base esplicita)

float() con stringhe

Accetta notazione decimale e scientifica.

Python
float("3.14")      # 3.14
float("1e3")       # 1000.0
float("inf")       # inf
float("nan")       # nan

str(): conversione "amichevole"

str(x) chiama internamente x.__str__() per ottenere la rappresentazione "per umani". Esiste anche repr(x) per la rappresentazione "per debugger", spesso più esplicita (con virgolette per le stringhe, ecc.).

Python
str(3.14)       # '3.14'
str([1, 2])     # '[1, 2]'
str(True)       # 'True'

bool() e truthiness

bool(x) ritorna False solo per i valori falsy di Python:

  • False, None
  • numeri zero: 0, 0.0
  • contenitori vuoti: "", [], (), {}, set()

Tutto il resto è truthy.

Python
bool(0)       # False
bool("")      # False
bool([])      # False
bool("0")     # True  !  (stringa non vuota)
bool([0])     # True  !  (lista non vuota, anche se contiene 0)

Pattern: parsing sicuro di input

Python
testo = input("età: ")
try:
    eta = int(testo)
except ValueError:
    print(f"non è un numero: {testo!r}")
    eta = None

Valutazione booleana (Truthiness)

In Python, ogni oggetto ha un valore di verità intrinseco. Puoi verificare il valore booleano di qualunque oggetto usando la funzione bool(...). Gli oggetti vuoti (es. "", [], {}, set()) e i numeri pari a zero (0, 0.0) restituiscono sempre False. Tutti gli altri oggetti restituiscono True.

Prova tu

Esercizio#python.m4.l4.e1
Tentativi: 0Caricamento…

Dati `a = '10'` e `b = '32'` (stringhe), calcola `total` come la loro somma INTERA. Valuta `total`.

Caricamento editor…
Mostra suggerimento

int(a) + int(b), altrimenti concateni le stringhe.

Soluzione disponibile dopo 3 tentativi

Esercizio di ripasso

Esercizio#python.m4.l4.e2
Tentativi: 0Caricamento…

Data la lista `values = ['', 'x', 0, None, 1, []]`, costruisci `truthy` con SOLO gli elementi truthy usando bool(). Valuta `truthy`.

Caricamento editor…
Mostra suggerimento

Lista per comprensione con filtro bool(v) (o solo 'if v').

Soluzione disponibile dopo 3 tentativi

Sfida aggiuntiva

Esercizio#python.m4.l4.e3
Tentativi: 0Caricamento…

Data la lista di stringhe `string_numbers = ["1", "2", "3"]`, converti ciascun elemento in intero usando `int()` e sommale insieme per ottenere il valore `6`. Salva la somma in `sum_val` e valutala.

Caricamento editor…
Mostra suggerimento

Accedi agli elementi tramite indice, es. int(string_numbers[0]), e sommali.

Soluzione disponibile dopo 3 tentativi