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)

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().

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 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).

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 cadenas

Acepta notación decimal y científica.

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

str(): 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.).

Python
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.

Python
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

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

Evaluació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ú

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

Dados `a = '10'` y `b = '32'` (cadenas), calcula `total` como su suma ENTERA. Evalúa `total`.

Cargando editor...
Mostrar pista

int(a) + int(b), de lo contrario concatenarás las cadenas.

Solución disponible después de 3 intentos

Ejercicio de repaso

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

Dada la lista `values = ['', 'x', 0, None, 1, []]`, construye `truthy` con SOLO los elementos truthy usando bool(). Evalúa `truthy`.

Cargando editor...
Mostrar pista

List comprehension con filtro bool(v) (o solo 'if v').

Solución disponible después de 3 intentos

Desafío adicional

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

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.

Cargando editor...
Mostrar pista

Accede a los elementos por índice, ej. int(string_numbers[0]), y súmalos.

Solución disponible después de 3 intentos