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.
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..lower()— pasa todo a minúsculas, porque los slugs de URL se escriben en minúscula por convención..replace(" ", "-")— sustituye cada espacio interno por un guion.replacecambia TODAS las apariciones, no solo la primera, y devuelve una copia nueva.- El orden importa: primero
strip(limpia bordes), luegolower, y al finalreplace. Se encadena en una sola líneatitulo.strip().lower().replace(" ", "-")porque cada método devuelve una cadena nueva sobre la que actúa el siguiente; eltitulooriginal 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.