Buenas. Lo primero pedir disculpas por una consulta como esta, probablemente es muy fácil de solucionar pero estoy aprendiendo y por más que he usado los buscadores no encuentro la forma correcta de hacerlo.
Tengo una lista, por ejemplo, "LUGARES", y una variable "respuesta" con entrada para el usuario:
LUGARES = ["casa", "coche", "calle", "campo", "playa", "montaña"]
respuesta = input ("¿Dónde te sientes más cómod@?: ")
Suponiendo que el usuario pueda responder con cualquier combinación de palabras, ¿cómo puedo separar cada palabra y comparar por si UNA (o al menos una) coincide con mi lista "LUGARES"?
(Por si por ejemplo el usuario introduce: "Me siento mejor en la playa", de la comparación por valida).
Leyendo he encontrado el comando split que intuyo que es parte de la respuesta, pero me pierdo a la hora de especificar que es suficiente con que coincida UNO de esos splits y no todos.
¿Alguien puede aclararme la duda? Gracias!!
Hola!
seria algo asi:
for i in respuesta.split():
if i in LUGARES:
print(f'{i} en LUGARES')
saludos !
Python puede llegar a ser tan compacto...
palabras = ["casa", "coche", "calle"]
respuesta = input("Escribe una frase con alguna de estas palabras " + str(palabras) + ": ")
valido = any(palabra in respuesta for palabra in palabras)
print("Correcto!!" if valido else "Incorrecto...")
Acabo de probar ambas opciones y las dos son interesantes.
Cita de: pery_soy en 24 Marzo 2021, 19:52 PM
for i in respuesta.split():
if i in LUGARES:
print(f'{i} en LUGARES')
Esta me devuelve como valor de "i" un string exacto a la palabra repetida.
Cita de: K-YreX en 24 Marzo 2021, 21:12 PM
palabras = ["casa", "coche", "calle"]
respuesta = input("Escribe una frase con alguna de estas palabras " + str(palabras) + ": ")
valido = any(palabra in respuesta for palabra in palabras)
print("Correcto!!" if valido else "Incorrecto...")
Y esta me devuelve un booleano con valor "True" para la variable "valido".
Dos formas diferentes de conseguir mi propósito ;-) Gracias a ambos!!