Saltar al contenido principal
eLearner.app
Módulo 4 · Lección 4 de 416/36 en el curso~10 min
Lecciones del módulo (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

Ejercicio#python.m4.l4.e1
Intentos: 0Cargando...

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

Cargando editor...
Mostrar pista

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

Solución disponible después de 3 intentos

Esercizio di ripasso

Ejercicio#python.m4.l4.e2
Intentos: 0Cargando...

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

Cargando editor...
Mostrar pista

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

Solución disponible después de 3 intentos

Sfida aggiuntiva

Ejercicio#python.m4.l4.e3
Intentos: 0Cargando...

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.

Cargando editor...
Mostrar pista

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

Solución disponible después de 3 intentos