Passer au contenu principal
eLearner.app
Module 4 · Leçon 4 sur 416/36 dans le cours~10 min
Leçons du module (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

Exercice#python.m4.l4.e1
Tentatives : 0Chargement…

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

Chargement de l'éditeur…
Afficher l'indice

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

Solution disponible après 3 tentatives

Esercizio di ripasso

Exercice#python.m4.l4.e2
Tentatives : 0Chargement…

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

Chargement de l'éditeur…
Afficher l'indice

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

Solution disponible après 3 tentatives

Sfida aggiuntiva

Exercice#python.m4.l4.e3
Tentatives : 0Chargement…

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.

Chargement de l'éditeur…
Afficher l'indice

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

Solution disponible après 3 tentatives