1 usuario conectado

Convertir a formato título. Ejercicio en Python

Comparte esto

 

Escribe una función en Python llamada convertir_a_formato_titulo que tome una cadena de texto en español como entrada y devuelva una nueva cadena con el formato de título. La función debe manejar correctamente los artículos y preposiciones comunes en español (como "de", "la", "el", "los", "las", "un", "una", "unos", "unas", "en", "con", "sin", "por", "para", "a", "desde", "hasta", "hacia", "sobre", "tras") y dejarlos en minúsculas a menos que sean la primera palabra de la frase.


Más ejercicios




Mostrar/Ocultar ejercicio resuelto


  Solución al Ejercicio: Convertir a formato título

📋 Copiar código


def convertir_a_formato_titulo(texto):
  """
  Convierte una cadena de texto en español a formato de título,
  dejando en minúsculas los artículos y preposiciones comunes
  a menos que sean la primera palabra.

  Args:
    texto: La cadena de texto de entrada en español.

  Returns:
    La cadena convertida a formato de título.
  """
  articulos_preposiciones = ["de", "la", "el", "los", "las", "un", "una", "unos", "unas",
                              "en", "con", "sin", "por", "para", "a", "desde", "hasta",
                              "hacia", "sobre", "tras"]
  palabras = texto.lower().split()
  resultado = []
  for indice, palabra in enumerate(palabras):
    if indice == 0 or palabra not in articulos_preposiciones:
      resultado.append(palabra.capitalize())
    else:
      resultado.append(palabra)
  return " ".join(resultado)

# Ejemplos de uso
texto1 = "hola mundo cruel"
resultado1 = convertir_a_formato_titulo(texto1)
print(f"'{texto1}' en formato título: '{resultado1}'")

texto2 = "la casa de papel"
resultado2 = convertir_a_formato_titulo(texto2)
print(f"'{texto2}' en formato título: '{resultado2}'")

texto3 = "EL PRINCIPITO"
resultado3 = convertir_a_formato_titulo(texto3)
print(f"'{texto3}' en formato título: '{resultado3}'")

texto4 = "un día en el parque"
resultado4 = convertir_a_formato_titulo(texto4)
print(f"'{texto4}' en formato título: '{resultado4}'")

texto5 = "CONSEJOS PARA LA VIDA"
resultado5 = convertir_a_formato_titulo(texto5)
print(f"'{texto5}' en formato título: '{resultado5}'")

texto6 = "a través del espejo"
resultado6 = convertir_a_formato_titulo(texto6)
print(f"'{texto6}' en formato título: '{resultado6}'")

texto7 = ""
resultado7 = convertir_a_formato_titulo(texto7)
print(f"'' en formato título: '{resultado7}'")


 

Explicación del Código:

  1. Función convertir_a_formato_titulo(texto):
    • Define una lista articulos_preposiciones con las palabras comunes en español que generalmente no se capitalizan en los títulos (a menos que sean la primera palabra).
    • Convierte todo el texto de entrada a minúsculas y lo divide en una lista de palabras utilizando el método split().
    • Inicializa una lista vacía resultado para almacenar las palabras con el formato de título.
    • Itera a través de la lista de palabras junto con su índice (indice).
    • Para cada palabra:
      • Si es la primera palabra de la frase (indice == 0) o si la palabra no está en la lista de articulos_preposiciones, se capitaliza la primera letra de la palabra utilizando .capitalize() y se añade al resultado.
      • Si la palabra no es la primera y está en la lista de artículos y preposiciones, se añade al resultado tal como está (en minúsculas).
    • Finalmente, une las palabras de la lista resultado con un espacio en blanco para formar la cadena con formato de título y la devuelve.

Ejemplos de Uso:

Los ejemplos muestran cómo la función convierte diferentes frases en español al formato de título, aplicando la regla de dejar en minúsculas los artículos y preposiciones comunes a menos que sean la primera palabra.