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.

Dado un conjunto de números en una cadena en Python.

Quiero verificar si un conjunto de números está presente en una cadena o no.

Aquí está mi código:

def check_no(cadena):
    cadena = cadena.lower()
    no = set(c)

s = set()
for i in cadena:
    if i in no:
        s.add(i)
    else:
        pass

if len(s) == len(no):
    return("Válido")
else:
    return("No válido")

c = input()
print(check_no(c))

Si el conjunto de números dado está presente en la cadena, entonces imprime “Válido” y si no está presente imprime “No válido”.

El programa funciona bien cuando se ingresa 123 y la cadena es como Tengo 12 coches y 3 motos, luego la salida es válida.

Pero cuando ingreso 254 y la cadena es tengo25555number, la salida es válida pero el resultado real debería ser No válido ya que 4 no está presente en la cadena.

¿Alguien puede ayudarme a resolverlo en el código proporcionado?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para solucionar el problema en el código proporcionado, debes cambiar la línea no = set(c) a no = set(map(str, c)). Esto convertirá el conjunto de números de entrada en un conjunto de cadenas, que luego se puede comprobar con la entrada de cadena.

    def check_no(string):
        string = string.lower()
        no = set(map(str, c))
    
        s = set()
        for i in string:
            if i in no:
                s.add(i)
            else:
                pass
    
        if len(s) == len(no):
            return("Válido")
        else:
            return("No válido")
    
    c = input()
    print(check_no(c))
    

    Con este cambio, la función debería mostrar correctamente “No válido” para la entrada “254” y la cadena “i hav25555number”.

Comments are closed.