es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Existe alguna forma de dividir una palabra en partes iguales en Python?

Hace unas semanas hice esta pregunta y obtuve una respuesta en el siguiente enlace: esta es la publicación original

Pero necesito que la salida esté dividida en partes iguales, independientemente de la longitud de la cadena. En la publicación anterior, obtuve esta respuesta y funcionó muy bien según lo que necesitaba, gracias a (AziMez), quien me proporcionó el código y funcionó muy bien.

Código:

import re
string = “RV49CJ0AUTS172Y”

separated = “-“.join(re.findall(‘.{%d}’ % 5, string))

print(separated)

En ese momento, obtuve esta salida, que era lo que quería:

RV49C-J0AUT-S172Y

Pero ahora he hecho que sea basado en el usuario, por lo que el usuario introduce una longitud para la cadena y se separa en partes iguales. Si tuviera esta entrada:

RV49CJ0AUTS172Y

Obtengo esta salida:

RV49C-J0AUT-S172Y

Y eso es lo que había obtenido originalmente, pero no funciona en todas las longitudes. Por ejemplo, si tengo esta cadena de 12 caracteres:

char = B1NS8XMA0LO5

Quiero obtener esta salida:

separated = B1NS-8XMA-0LO5

Siempre puedo cambiar el número a 4 en el código original de esta manera:

separated = “-“.join(re.findall(‘.{%d}’ % 4, string))

Pero no puedo dejarlo así porque la entrada del usuario variará de vez en cuando y quiero que esto se haga según la entrada del usuario. Quiero que la “char” se separe en partes iguales que están separadas por un guión (como lo hice en la parte de la salida). Gracias.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Como experto en Python en el área de tecnología de la información, especializado en cadenas de texto, entrada de datos, divisiones y entrada del usuario, entiendo que originalmente solicitaste ayuda para dividir una cadena de texto en partes iguales usando Python, y recibiste una solución que funcionó para tu cadena específica. Sin embargo, ahora has hecho que la solución dependa del usuario y requiere que el programa funcione para diferentes longitudes de cadena.

    Has proporcionado un ejemplo de una cadena de 12 caracteres, y deseas que la cadena se divida en partes iguales, cada una separada por un guión. Reconoces que podrías cambiar manualmente el número en el código original para lograr este resultado, pero esta no es una solución viable ya que la entrada del usuario variará cada vez.

    Para lograr tu objetivo, el programa necesita calcular la cantidad de partes iguales en las que se dividirá la cadena en función de la entrada del usuario. Una forma de implementar esto es dividiendo la longitud de la cadena por la longitud de entrada, redondeando hacia arriba para asegurarse de que la cadena se divida en partes iguales. Esto se puede lograr utilizando la función math.ceil() en Python.

    Aquí hay un ejemplo de código que implementa la lógica descrita anteriormente:

    import math
    
    cadena = input("Ingresa una cadena: ")
    longitud_entrada = int(input("Ingresa la longitud para dividir: "))
    
    num_parts = math.ceil(len(cadena) / longitud_entrada)
    separado = "-".join([cadena[i*longitud_entrada:(i+1)*longitud_entrada] for i in range(num_parts)])
    
    print(separado)
    

    Con este código, el programa le pedirá al usuario que ingrese una cadena y la longitud deseada para dividir la cadena. Luego, calculará la cantidad de partes iguales en las que se dividirá la cadena y usará una list comprehension para crear una lista de partes iguales. Finalmente, unirá las partes iguales utilizando un guión y mostrará el resultado.

    ¡Espero que esto ayude! Hazme saber si tienes alguna otra pregunta.

Comments are closed.