1 usuario conectado

Eliminar espacios extra. Ejercicio en Python

Comparte esto

 

Escribe una función en Python llamada eliminar_espacios_extra que tome una cadena de texto como entrada y devuelva una nueva cadena donde se han eliminado los espacios en blanco iniciales y finales, y donde múltiples espacios consecutivos entre palabras se han reducido a un solo espacio.

Más ejercicios




Mostrar/Ocultar ejercicio resuelto


  Solución al Ejercicio: Eliminar espacios extra

📋 Copiar código


import re

def eliminar_espacios_extra(texto):
  """
  Elimina los espacios en blanco iniciales y finales, y reduce múltiples
  espacios consecutivos a un solo espacio en una cadena de texto.

  Args:
    texto: La cadena de texto de entrada.

  Returns:
    Una nueva cadena con los espacios extra eliminados.
  """
  # Eliminar espacios iniciales y finales
  texto_sin_bordes = texto.strip()
  # Reducir múltiples espacios internos a uno solo
  texto_sin_multiples = re.sub(r'\s+', ' ', texto_sin_bordes)
  return texto_sin_multiples

# Ejemplos de uso
texto1 = "  Hola   mundo  "
limpio1 = eliminar_espacios_extra(texto1)
print(f"'{texto1}' con espacios extra eliminados es: '{limpio1}'")

texto2 = "   Espacios al principio."
limpio2 = eliminar_espacios_extra(texto2)
print(f"'{texto2}' con espacios extra eliminados es: '{limpio2}'")

texto3 = "Espacios al final.   "
limpio3 = eliminar_espacios_extra(texto3)
print(f"'{texto3}' con espacios extra eliminados es: '{limpio3}'")

texto4 = "Múltiples   espacios   intermedios."
limpio4 = eliminar_espacios_extra(texto4)
print(f"'{texto4}' con espacios extra eliminados es: '{limpio4}'")

texto5 = " Sin espacios extra. "
limpio5 = eliminar_espacios_extra(texto5)
print(f"'{texto5}' con espacios extra eliminados es: '{limpio5}'")

texto6 = ""
limpio6 = eliminar_espacios_extra(texto6)
print(f"'{texto6}' con espacios extra eliminados es: '{limpio6}'")

 

Explicación del Código:

  1. Importación del módulo re:

    • Se importa el módulo re (regular expression) para utilizar expresiones regulares en la reducción de múltiples espacios internos.
  2. Definición de la función eliminar_espacios_extra(texto):

    • Se define una función llamada eliminar_espacios_extra que toma una cadena de texto texto como argumento.
  3. Eliminación de espacios iniciales y finales:

    • texto_sin_bordes = texto.strip(): Se utiliza el método strip() de las cadenas. strip() devuelve una nueva cadena después de eliminar los espacios en blanco (incluyendo espacios, tabulaciones y saltos de línea) que se encuentren al principio y al final de la cadena original texto.
  4. Reducción de múltiples espacios internos:

    • texto_sin_multiples = re.sub(r'\s+', ' ', texto_sin_bordes):
      • Se utiliza la función re.sub() para buscar y reemplazar patrones en la cadena texto_sin_bordes.
      • El patrón de expresión regular r'\s+' coincide con una o más (+) ocurrencias de cualquier carácter de espacio en blanco (\s).
      • Todas las coincidencias de este patrón son reemplazadas por un solo espacio en blanco (' '). Esto asegura que donde había múltiples espacios consecutivos, ahora habrá solo uno.
  5. Retorno de la cadena limpia:

    • return texto_sin_multiples: La función devuelve la cadena resultante texto_sin_multiples, que tiene los espacios iniciales y finales eliminados y los múltiples espacios internos reducidos a un solo espacio.
  6. Ejemplos de uso:

    • Se proporcionan varios ejemplos de cadenas de texto con diferentes combinaciones de espacios extra (iniciales, finales y múltiples internos).
    • Para cada ejemplo, se llama a la función y se imprime la cadena original y la cadena resultante después de la eliminación de los espacios extra. Se incluye un caso con una cadena vacía para mostrar su manejo.