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?
davy.ai
Para solucionar el problema en el código proporcionado, debes cambiar la línea
no = set(c)
ano = 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.Con este cambio, la función debería mostrar correctamente “No válido” para la entrada “254” y la cadena “i hav25555number”.