Lecciones del módulo (4/4)
Conversiones de tipo
Python es fuertemente tipado: nunca suma una cadena a un número a menos que tú
lo indiques. Para pasar de un tipo a otro se utilizan las funciones constructoras:
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 cadenas
int("42") funciona; int("42.5") genera un ValueError. Para cadenas decimales,
pasa primero por float: int(float("42.5")) → 42 (trunca, no
redondea).
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 cadenas
Acepta notación decimal y científica.
float("3.14") # 3.14
float("1e3") # 1000.0
float("inf") # inf
float("nan") # nanstr(): la conversión "amigable"
str(x) llama internamente a x.__str__() para obtener la representación "humana".
También existe repr(x) para la representación del "depurador", a menudo más
explícita (con comillas para cadenas, etc.).
str(3.14) # '3.14'
str([1, 2]) # '[1, 2]'
str(True) # 'True'bool() y truthiness
bool(x) devuelve False solo para los valores falsy de Python:
False,None- números cero:
0,0.0 - contenedores vacíos:
"",[],(),{},set()
Todo lo demás es truthy.
bool(0) # False
bool("") # False
bool([]) # False
bool("0") # True ! (stringa non vuota)
bool([0]) # True ! (lista non vuota, anche se contiene 0)Patrón: análisis seguro de entradas
testo = input("età: ")
try:
eta = int(testo)
except ValueError:
print(f"non è un numero: {testo!r}")
eta = NoneEvaluación booleana (Truthiness)
En Python, cada objeto tiene un valor de verdad implícito. Puedes verificar el valor booleano de cualquier objeto utilizando la función bool(...). Las colecciones vacías (ej. "", [], {}, set()) y los valores cero (0, 0.0) siempre se evalúan como False. Todos los demás objetos se evalúan como True.
Pruébalo tú
Dados `a = '10'` y `b = '32'` (cadenas), calcula `total` como su suma ENTERA. Evalúa `total`.
Mostrar pista
int(a) + int(b), de lo contrario concatenarás las cadenas.
Solución disponible después de 3 intentos
Ejercicio de repaso
Dada la lista `values = ['', 'x', 0, None, 1, []]`, construye `truthy` con SOLO los elementos truthy usando bool(). Evalúa `truthy`.
Mostrar pista
List comprehension con filtro bool(v) (o solo 'if v').
Solución disponible después de 3 intentos
Desafío adicional
Dada la lista de cadenas `string_numbers = ["1", "2", "3"]`, convierte cada elemento a un entero usando `int()` y súmalos para obtener el valor `6`. Guarda la suma en `sum_val` y evalúala.
Mostrar pista
Accede a los elementos por índice, ej. int(string_numbers[0]), y súmalos.
Solución disponible después de 3 intentos