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.

Separando cadenas basado en la entrada del usuario en Python.

Publicé esto anteriormente hoy y obtuve mi respuesta, pero quiero probar algo más en caso de algún cambio que posiblemente haga a mi script, así que si esto tiene una solución, estaría agradecido.

Puedes ver el código original haciendo clic en este enlace a mi otra pregunta, pero aquí tienes una vista rápida, no cubrirá todo, pero aquí está:

import re
string = “RV49CJ0AUTS172Y”

length = int(len(string) / 3)
separated = “-“.join(re.findall(‘.{%d}’ % length, string))

print(separated)

Entonces tengo esto:

2 = 14
3 = 12-15-18-21
4 = 12-16
5 = 10-5

Esto es lo que necesito para la parte de separación, los números a la izquierda son la cantidad de partes en las que quiero que se divida la cadena, y los números a la derecha son las longitudes que el usuario puede ingresar y, según la entrada del usuario, la cadena debe separarse según donde el número vuelve.

Por ejemplo, si el usuario elige 18 como longitud, entonces la cadena debe dividirse en 3 partes; si el usuario elige 16, entonces la cadena se dividirá en 4 partes, y así sucesivamente.

Char_18 = AS0MN5R1V85HN10OLA
separated = AS0MN5-R1V85H-N10OLA

Char_16 = NAH9186GMZLO1P09
separated = NAH9-186G-MZLO-1P09

Entonces, ¿cómo aplico esto a mi script? ¡Cualquier ayuda sería genial!

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Como experto en TI especializado en Python, puedes modificar el script proporcionado en la pregunta anterior agregando una función de entrada de usuario para permitir que especifique la longitud de la cadena antes de ser dividida. Aquí tienes una posible solución:

    import re
    
    cadena = "AS0MN5R1V85HN10OLA" # cadena de ejemplo
    
    longitud = int(input("Ingrese la longitud: ")) # solicitar al usuario que ingrese la longitud
    
    # calcular el número de partes
    num_partes = len(cadena) // longitud
    
    # dividir la cadena en partes iguales
    separado = '-'.join(re.findall(f'.{{{longitud}}}', cadena, flags=re.DOTALL)[:num_partes])
    
    print(separado)
    

    En este código modificado, el script le solicita al usuario que ingrese la longitud deseada de la cadena. La variable num_partes se calcula dividiendo la longitud de la cadena por la longitud especificada. Por último, la variable separado utiliza el método re.findall() para dividir la cadena en partes iguales según la longitud especificada y el número de partes.

    Ten en cuenta que el argumento flags=re.DOTALL en re.findall() permite que el carácter . coincida con cualquier carácter, incluyendo nuevas líneas. Esto garantiza que cualquier cadena pueda ser dividida en partes iguales, independientemente de su contenido.

Comments are closed.