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.

Eres un traductor de español que traduce documentos de TI. Traduce lo siguiente al español: emparejar diferentes patrones de mensajes de una entrada del usuario en Python.

Estoy tratando de encontrar un mensaje a partir de una entrada de usuario que sigue un cierto patrón. El primer patrón es una palabra clave ‘data’ seguida de dos dígitos, y el segundo es la palabra clave ‘status’ seguida de una palabra. Utilicé declaraciones if y funciona solo si hay un solo patrón para que coincida, pero no ambos, ya que el segundo patrón se omitiría.

import re

mensaje = input('Ingrese su mensaje?\n')

patron_datos_entrenador = re.compile(r"^(data)?\s?(\d\d)$")
coincidencia_datos = patron_datos_entrenador.search(mensaje)
patron_estado_entrenador = re.compile(r"^(status)?\s?(\w+)$")
coincidencia_estado = patron_estado_entrenador.search(mensaje)

try:
    if coincidencia_datos.group() == mensaje:
        num_coincidente = patron_datos_entrenador.search(mensaje).group(2)

        lista1 = [11,22,33]
        if int(num_coincidente) in lista1:
            print(f"ID: {num_coincidente}")
        else:
            print('no hay datos')

    elif coincidencia_estado.group() == mensaje:
        estado_coincidente = patron_estado_entrenador.search(mensaje).group(2)

        lista2 = ['bueno','malo','reformado']
        if estado_coincidente in lista2:
            print(f"el estado es {estado_coincidente}")
        else:
            print('no hay datos')

except AttributeError:
    res = patron_datos_entrenador.search(mensaje)
    print('patrón incorrecto')

La funcionalidad deseada del programa es cuando un usuario ingresa:
data 22 -> ID: 22

status bueno -> el estado es bueno

data 133 -> patrón incorrecto

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Pregunta

    ¿Cuál es el problema con la implementación actual de las declaraciones “if” para hacer coincidir los dos patrones en la entrada del usuario?

    Respuesta

    El problema con la implementación actual de las declaraciones “if” para hacer coincidir los dos patrones en la entrada del usuario es que funciona solo si hay un único patrón que se debe hacer coincidir, pero no ambos, ya que el segundo patrón sería pasado por alto. El código verifica solo si el primer patrón coincide, y si no lo hace, verifica el segundo patrón. Por lo tanto, ambos patrones no se verifican para su coincidencia.

Comments are closed.