Digamos que le pido a un usuario que ingrese sin procesar y me dijeron: "Este es un mensaje". Si esa entrada en bruto contenía la palabra "mensaje", realizaría una acción después de eso. ¿Podría ver cómo se puede hacer esto?¿Cómo puedo verificar si una oración contiene una palabra determinada en Python y luego realizar una acción?
Respuesta
Going basa en la observación de @knitti, el problema es que se necesita para dividir la frase en palabras en primer lugar, a continuación, comprobar:
term = "message" #term we want to search for
input = raw_input() #read input from user
words = input.split() #split the sentence into individual words
if term in words: #see if one of the words in the sentence is the word we want
do_stuff()
De lo contrario, si usted tenía la frase "Eso es un clásico "y trataste de comprobar si contenía la palabra" culo ", devolvería Verdadero incorrectamente.
Por supuesto, esto todavía no es perfecto porque entonces puede que tenga que preocuparse por cosas como eliminar la puntuación y lo que no (como, etc.) porque de lo contrario la frase "Ese es un clásico". aún devolvería False para una búsqueda de "clásico" (debido al período al final). En lugar de reinventar la rueda, aquí hay un buen puesto en pelar puntuacion de una sentencia en Python:
Best way to strip punctuation from a string in Python
Hay mayúsculas y minúsculas que considerar también, así que es posible que desee cambiar el resultado raw_input
y el término de búsqueda para minúsculas antes de hacer una búsqueda. Puede hacerlo fácilmente simplemente usando la función lower()
en la clase str
.
Estos problemas siempre parecen simples ...
if "message" in sentence:
do_action()
¡Gracias amte! Me siento algo estúpido después de darme esta respuesta. –
Esto no funcionará, debido al caso de la coincidencia de subcadenas. – DehengYe
Esto es, por supuesto, un ejemplo muy sencillo:
if "message" in raw_input():
action()
Si usted está obligado a asignar palabras diferentes para diferentes acciones, entonces se podría hacer algo como esto:
# actions
def action():
print "action"
def other_action():
print "other action"
def default_action():
print "default action"
# word to action translation function
def word_to_action(word):
return {
"message": action,
"sentence": other_action
}.get(word, default_action)()
# get input, split into single words
w = raw_input("Input: ").split()
# apply the word to action translation to every word and act accordingly
map(word_to_action, w)
Tenga en cuenta que esto también define una acción predeterminada para el caso cuando la entrada no contiene ninguna de las palabras de activación.
Consulte here para obtener más detalles sobre la expresión de mapeo anterior, que en realidad es la forma de Python de lograr 'declaración de cambio'.
- 1. Javascript - verifica si div contiene una palabra?
- 2. jquery cómo verificar si url contiene palabra?
- 3. ¿Cómo puedo verificar si una cadena Perl contiene letras?
- 4. htaccess redirigir si la URL contiene una determinada cadena
- 5. En Java, ¿cómo puedo verificar si una colección contiene una instancia de una clase específica?
- 6. Eliminar archivos del directorio si el nombre del archivo contiene una determinada palabra
- 7. ¿Cómo verificar si un modelo tiene una determinada columna/atributo?
- 8. ¿Cómo puedo verificar si existe una cadena en una matriz?
- 9. Python: cortar la última palabra de una oración?
- 10. ¿Prueba si una cadena contiene una palabra en PHP?
- 11. ¿Cómo puedo verificar si existe una ruta (ASP.NET MVC) para una ruta determinada?
- 12. si la oración contiene cadena
- 13. ¿Cómo puedo verificar que una cadena contiene una fecha?
- 14. ¿Cómo saber si una oración es una pregunta (interrogativa)?
- 15. ¿Cómo puedo verificar si existe una palabra en una cadena y devolver falso si no aparece en ruby?
- 16. ¿Cómo puedo verificar si una cadena solo contiene caracteres alfanuméricos y guiones?
- 17. En Java, ¿cómo puedo verificar si una cadena contiene una subcadena (ignorando el caso)?
- 18. Ruby regex "contiene una palabra"
- 19. ¿Cómo puedo verificar si una matriz de bytes contiene una cadena Unicode en Java?
- 20. ¿Verifica si una cadena contiene una palabra pero solo en una posición específica?
- 21. ¿Cómo puedo verificar si una URL es absoluta usando Python?
- 22. ¿Cómo realizar una acción cada 5 resultados?
- 23. Cómo verificar si un TextView contiene una cierta cadena
- 24. Negrita una sola palabra dentro de una oración con iTextSharp
- 25. ¿Cómo puedo consultar con JQuery, si se escribe una palabra determinada en el navegador?
- 26. Python: verifique si una palabra se deletrea correctamente
- 27. determinan programáticamente si se instala una gema determinada, y luego la instalan si no es
- 28. ¿Cómo comprobar si existe una imagen con una URL determinada?
- 29. ¿Cómo puedo convertir una oración en una matriz de palabras?
- 30. Cómo verificar si una cadena contiene http: // al inicio
Si intenta generar un filtro de contenido, considere esto: la palabra "clásico" tiene "culo" en ella (., Que, por cierto es otro término para el burro) . Esto es, por supuesto, solo una muestra: – knitti