2017-06-20 5 views
0

J'ai fait une sorte d'intelligence artificielle (cela ressemble plus à une longue liste de questions-réponses) et j'ai cherché à augmenter la complexité, mais je Je sais qu'il y a un moyen de réduire la quantité de frappe que je dois faire et je n'arrive pas à le trouver. Quoi qu'il en soit, voici la version longue de me demander pour l'entrée, puis de vérifier le type d'entrée (par exemple, il est une question):Problème avec la vérification et la condensation des listes de conditions dans les chaînes

a = input() 
if "what" in a: 
    a_type = question 
if "where" in a: 
    a_type = question 
if "when" in a: 
    a_type = question 
if "why" in a: 
    a_type = question 
if "who" in a: 
    a_type = question 

et ainsi de suite, je vérifierais pour sujet, humeur, expression, etc. .. Si quelqu'un sait comment condenser tous les 5 de ces déclarations qui serait génial, merci ...

Répondre

0

Utilisez le any() function avec un generator expression pour tester les mots d'une séquence contre a:

question_words = ['what', 'when', 'where', 'why', 'who'] 
if any(word in a for word in question_words): 
    a_type = question 

any() se répète sur l'expression du générateur et renvoie True dès que l'un des tests word in a est vrai ou False lorsque l'expression du générateur est épuisée.

+0

Merci beaucoup! cela efface 1 1/2 heure de grattage de la tête ... –