1. Faro

Nivel 3 · Da formato a una etiqueta de estantería

La solicitud

De Thomas Whitaker, Director de Merchandising

“El nombre del producto salió del sistema antiguo con espacios de más y en minúsculas. Lo necesito como etiqueta de estantería: el nombre en mayúsculas, una barra vertical y luego el precio con signo de dólar y centavos.”

Tu objetivo

Asigna a result el string LINEN THROW PILLOW | $34.00, construido a partir de name y price: quita los espacios, pasa el nombre a mayúsculas y da formato al precio con exactamente 2 decimales.

  • Guarda un texto (str) en resultpendiente

Tu código

Python

Cargando el editor…

    ResultadoPresiona Ejecutar para ver el tuyo

    Mote revisa tu resultado

    Presiona Ejecutar. Cada fila que cumple el objetivo se vuelve una luciérnaga en tu linterna.

    La lección

    Los strings son texto

    Un string (str) es texto entre comillas. Las comillas simples y las dobles hacen lo mismo:

    product = "Linen Throw Pillow"
    city = 'Portland'

    Los analistas pasan mucho tiempo con strings, porque los datos reales están llenos de texto desordenado: nombres escritos por clientes, códigos exportados de sistemas antiguos, ciudades con espacios al final.

    Métodos de string

    Un método es una función que pertenece a un valor. Lo llamas con un punto. Los strings traen muchos útiles:

    raw = "   linen throw pillow  "
    
    raw.strip()          # 'linen throw pillow'   spaces removed at both ends
    raw.upper()          # '   LINEN THROW PILLOW  '
    raw.strip().title()  # 'Linen Throw Pillow'
    "SKU-1042".lower()   # 'sku-1042'
    "oak, walnut".replace(",", " /")   # 'oak / walnut'
    "Oak Side Table".startswith("Oak")   # True

    Los métodos devuelven un string nuevo. El original nunca cambia, porque los strings en Python no se pueden modificar en el sitio. Si quieres conservar la versión limpia, guárdala:

    name = raw.strip()

    Puedes encadenar métodos, y se ejecutan de izquierda a derecha: raw.strip().upper() primero quita los espacios y luego pasa a mayúsculas el resultado.

    Unir texto con f-strings

    Para construir una frase o una etiqueta a partir de valores, pon una f antes de la comilla de apertura y escribe las variables entre llaves:

    name = "Oak Side Table"
    stock = 14
    f"{name}: {stock} in stock"     # 'Oak Side Table: 14 in stock'

    Todo lo que está dentro de las llaves se evalúa como Python, así que también puedes llamar métodos ahí: f"{name.upper()}".

    Dar formato a números

    Después del valor, los dos puntos inician una especificación de formato. Las que usarás constantemente:

    price = 34
    f"{price:.2f}"        # '34.00'     two decimals
    f"{1249.5:,.2f}"      # '1,249.50'  thousands separator
    f"{0.237:.1%}"        # '23.7%'     as a percentage

    .2f significa «punto fijo, dos decimales». También redondea: f"{49.996:.2f}" da '50.00'. Fíjate en que el signo de dólar de una etiqueta es solo un carácter más del string, así que f"${price:.2f}" muestra $34.00.

    ¿Por qué no usar simplemente +?

    Puedes unir strings con +, pero cada pieza tiene que ser ya un string:

    "Price: " + 34          # TypeError: can only concatenate str (not "int") to str
    "Price: " + str(34)     # 'Price: 34'

    Los f-strings convierten los valores por ti y te permiten darles formato, por eso son el estándar moderno.

    Por qué los analistas limpian el texto primero

    El texto que a una persona le parece idéntico puede ser distinto para un ordenador. "Portland", "portland" y "Portland " son tres valores diferentes, así que un conteo de clientes por ciudad partiría una ciudad en tres filas. Limpiar el texto hasta una forma consistente, normalmente sin espacios sobrantes y con una capitalización fija, es una de las primeras tareas en casi cualquier conjunto de datos. Lo harás a gran escala con pandas en el capítulo de limpieza, usando exactamente los métodos que acabas de aprender.

    Errores comunes

    • Llamar a name.strip() y esperar que el propio name cambie. Los strings son inmutables; usa el valor devuelto.
    • Dar formato al precio con {price} en lugar de {price:.2f}, que muestra 34 en vez de 34.00.
    • Olvidar la f antes de la comilla. Sin ella, Python muestra las llaves tal cual: "{name}" se queda en "{name}".

    Elige qué puede ejecutarse en este sitio. Puedes cambiarlo cuando quieras desde "Configurar cookies", al pie de cada página.