Ejercicio 05 — Convierte un titulo a slug (minusculas, sin espacios al borde,…

Dificultad: amarillo · Módulo 06 (Cadenas)

Enunciado

Convierte un titulo a slug (minusculas, sin espacios al borde, espacios por guiones)

Cómo se resuelve

Convertir un título en slug (el texto que va en una URL) es un caso real donde encadenar tres métodos de cadena resuelve el problema en una línea.

  1. titulo.strip() — elimina los espacios sobrantes de los bordes, para que un título con espacios delante o detrás no genere guiones de más.
  2. .lower() — pasa todo a minúsculas, porque los slugs de URL se escriben en minúscula por convención.
  3. .replace(" ", "-") — sustituye cada espacio interno por un guion. replace cambia TODAS las apariciones, no solo la primera, y devuelve una copia nueva.
  4. El orden importa: primero strip (limpia bordes), luego lower, y al final replace. Se encadena en una sola línea titulo.strip().lower().replace(" ", "-") porque cada método devuelve una cadena nueva sobre la que actúa el siguiente; el titulo original queda intacto (inmutabilidad).

Trampa habitual: hacer el replace(" ", "-") antes del strip(). Si el texto tenía espacios al borde, esos se convertirían en guiones al principio o al final del slug (“-mi-titulo-”). Limpia los bordes primero.

Para practicar — cópialo y complétalo

Pega este esqueleto y completa los TODO. Es la mejor forma de aprender: inténtalo antes de mirar la solución.

# Curso de Python — Modulo 06: Cadenas: transformar y formatear
# Ejercicio 05 — PRACTICA (rellena los TODO)
# Enunciado: Convierte un titulo a slug (minusculas, sin espacios al borde, espacios por guiones)
# Dificultad: amarillo
# Ejecutar: python3 ej05_practica.py
 
titulo = input("Introduce un titulo: ")
 
# TODO: encadena strip() (espacios al borde), lower() (minusculas)
#       y replace(" ", "-") (espacios internos por guiones)
slug = ""
 
# TODO: imprime el slug
print()

Solución — cópiala y ejecútala

# Curso de Python — Modulo 06: Cadenas: transformar y formatear
# Ejercicio 05 — MODELO (resuelto)
# Enunciado: Convierte un titulo a slug (minusculas, sin espacios al borde, espacios por guiones)
# Dificultad: amarillo
# Ejecutar: python3 ej05_modelo.py
 
titulo = input("Introduce un titulo: ")
 
# strip() quita espacios al borde, lower() pasa a minusculas,
# replace(" ", "-") cambia los espacios internos por guiones.
# Como cada metodo devuelve copia, los encadenamos en una linea.
slug = titulo.strip().lower().replace(" ", "-")
 
print(slug)

Cómo usarlo

Pega el código en un fichero y ejecútalo con tu toolchain habitual (o el botón de Ejecutar de tu editor). Antes de mirar la solución, intenta completar tú el esqueleto: es la mejor forma de aprender.

Conexiones