3 usuarios conectados

Convertir cadena a snake case. Ejercicio en Python

Comparte esto

 
Escribe una función en Python llamada a_snake_case que tome una cadena de texto como entrada y devuelva su representación en formato snake_case. La función debe manejar espacios, mayúsculas y algunos signos de puntuación básicos. Este formato es común en programación para nombres de variables, funciones, etc., donde las palabras se separan con guiones bajos y todas las letras son minúsculas.


Más ejercicios




Mostrar/Ocultar ejercicio resuelto


  Solución al Ejercicio: Convertir cadena a snake case

📋 Copiar código

	
import re

def a_snake_case(texto):
  """
  Convierte una cadena de texto a formato snake_case.

  Args:
    texto: La cadena de texto de entrada.

  Returns:
    La cadena en formato snake_case.
  """
  texto = re.sub(r'[^\w\s]', '', texto).strip().lower()
  return re.sub(r'\s+', '_', texto)

# Ejemplos de uso
texto1 = "Hola Mundo Cruel"
resultado1 = a_snake_case(texto1)
print(f"'{texto1}' en snake_case: '{resultado1}'")

texto2 = "Este Es Un Texto Con Mayúsculas"
resultado2 = a_snake_case(texto2)
print(f"'{texto2}' en snake_case: '{resultado2}'")

texto3 = "Un título con ¡caracteres especiales!"
resultado3 = a_snake_case(texto3)
print(f"'{texto3}' en snake_case: '{resultado3}'")

texto4 = "  Espacios al principio y al final  "
resultado4 = a_snake_case(texto4)
print(f"'{texto4}' en snake_case: '{resultado4}'")

texto5 = "Múltiples   espacios   seguidos"
resultado5 = a_snake_case(texto5)
print(f"'{texto5}' en snake_case: '{resultado5}'")

texto6 = ""
resultado6 = a_snake_case(texto6)
print(f"'' en snake_case: '{resultado6}'")

texto7 = "UnaCadenaCamelCase"


Explicación del Código:

  1. import re:

    • Importa el módulo re para trabajar con expresiones regulares.
  2. def a_snake_case(texto)::

    • Define una función llamada a_snake_case que toma una cadena de texto (texto) como entrada.
  3. texto = re.sub(r'[^\w\s]', '', texto).strip().lower():

    • Limpieza y conversión a minúsculas:
      • re.sub(r'[^\w\s]', '', texto): Reemplaza cualquier carácter que no sea una letra (\w), un número o un espacio en blanco (\s) con una cadena vacía (eliminándolos).
      • .strip(): Elimina los espacios en blanco al principio y al final de la cadena.
      • .lower(): Convierte toda la cadena a minúsculas.
  4. return re.sub(r'\s+', '_', texto):

    • Reemplazo de espacios con guiones bajos:
      • re.sub(r'\s+', '_', texto): Reemplaza una o más ocurrencias consecutivas de espacios en blanco (\s+) con un solo guion bajo (_).

Ejemplos de Uso:

Los ejemplos muestran cómo la función convierte diferentes cadenas de texto al formato snake_case, manejando mayúsculas, espacios y algunos caracteres especiales. El último ejemplo incluye una pequeña modificación (comentada como opcional) para intentar manejar cadenas en formato CamelCase antes de la conversión final a snake_case, separando las palabras por espacios antes de aplicar la sustitución con guiones bajos.