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().
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).
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.
float("3.14") # 3.14
float("1e3") # 1000.0
float("inf") # inf
float("nan") # nanstr(): 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.).
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.
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
testo = input("età: ")
try:
eta = int(testo)
except ValueError:
print(f"non è un numero: {testo!r}")
eta = NoneValutazione 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
Dati `a = '10'` e `b = '32'` (stringhe), calcola `total` come la loro somma INTERA. Valuta `total`.
Mostra suggerimento
int(a) + int(b), altrimenti concateni le stringhe.
Soluzione disponibile dopo 3 tentativi
Esercizio di ripasso
Data la lista `values = ['', 'x', 0, None, 1, []]`, costruisci `truthy` con SOLO gli elementi truthy usando bool(). Valuta `truthy`.
Mostra suggerimento
Lista per comprensione con filtro bool(v) (o solo 'if v').
Soluzione disponibile dopo 3 tentativi
Sfida aggiuntiva
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.
Mostra suggerimento
Accedi agli elementi tramite indice, es. int(string_numbers[0]), e sommali.
Soluzione disponibile dopo 3 tentativi