Comment faire pour créer la fonction de consultation de dictionnaire en python sur la PI de framboise

Pour aller au-delà des fonctions de base en Python, créer le look up fonction de dictionnaire. Le Raspberry Pi vous permet de construire une fonction qui prend le texte et les contrôles du joueur pour toutes les réponses pertinentes. Pour ce faire, vous utilisez les dictionnaires et les fonctions, et d'ajouter quelques nouvelles idées relatives à boucles, cordes, et la prise de décision.

La fonction est à seulement 12 lignes de long, mais il est assez sophistiqué. Il doit prendre ce que le joueur est entré, et vérifier chaque mot pour voir si le dictionnaire a une réponse pour ce mot. Le joueur peut utiliser plus d'un mot qui est dans le dictionnaire.

Par exemple, si le joueur dit "I love la musique pop," les mots amour et musique pourrait être à la fois dans le dictionnaire. Sinon, le joueur peut utiliser aucun mot le programme reconnaît, si vous avez besoin pour concevoir votre fonction pour faire face à cette situation aussi.

Voici la fonction dans son intégralité, vous pouvez donc voir comment tous les bits emboîtent:

def dictionarycheck (message): message = message.lower () playerwords = message.split () smartreplies = [] pour eachword dans playerwords: si eachword dans chatdictry: answer = chatdictry [eachword] smartreplies.append (réponse) si smartreplies: replychosen = random.randint (0, len (smartreplies)) - 1RETURN smartreplies [replychosen] else: return ""

Les deux lignes suivantes introduisent méthodes de chaînes. Ce sont comme des fonctions intégrées qui sont attachés à une chaîne et de la transformer en quelque sorte. La inférieur () méthode convertit une chaîne en minuscules. Ceci est important parce que si un joueur utilise des majuscules ou des majuscules et des minuscules, ils ne correspondent pas aux mots minuscules que vous avez utilisés dans vos clés de dictionnaire.

En ce qui concerne le programme est concerné, Bonjour et Bonjour ne sont pas la même chose. La Divisé() méthode prend une chaîne et il se divise en une liste de ses mots constitutifs. Les deux premières lignes de notre fonction, puis, tourner le contenu de la variable de message dans une version en minuscules de lui-même, et puis créer une nouvelle liste de mots le joueur est entré, appelés playerwords.




Vous allez stocker réponses possibles pour le joueur dans une liste appelée smartreplies, créer ainsi que d'une liste vide.

La prochaine étape est de mettre en place une boucle qui passe par la liste des mots que le joueur est entré à son tour. Lorsque vous avez utilisé un pour boucle, vous allez travailler votre chemin à travers une liste de mots. Chaque fois autour de la boucle, la variable chaque mot contient l'élément suivant de la liste des mots que le joueur est entré.

La ligne suivante présente une nouvelle idée, le instruction conditionnelle, qui commence par si. Une instruction conditionnelle est utilisé pour permettre à l'ordinateur de prendre une décision quant à savoir si elle doit effectuer certaines instructions. Vous croiserez dans presque tous les programmes que vous écrivez. Ici, il est utilisé pour éviter le programme d'arrêt et de rapporter une erreur si vous essayez d'utiliser une clé qui ne sont pas dans le dictionnaire:

 si eachword dans chatdictry: answer = chatdictry [eachword] smartreplies.append (réponse)

La chaque mot variable contient un des mots le joueur est entré, de sorte que le si vérifications des états si ce mot est dans le dictionnaire et réalise les deux instructions suivantes si elles ne sont.

Remarquez comment l'indentation est utilisé ici pour montrer qui commande appartenir ensemble - dans ce cas, qui sont commandés par le si déclaration. Si le mot est dans le dictionnaire, le programme ressemble en place et ajoute la réponse obtenue à la smartreplies liste, à l'aide append ().

Ce processus est répété pour chaque mot le joueur est entré, mais qui est tout ce qui se passe dans la boucle. La ligne suivante est pas en retrait en dessous de la pour déclaration, il est donc pas contrôlée par elle.

Quand vous sortez de la boucle, vérifier si la liste smartreplies a quelque chose en elle, en utilisant simplement

 si smartreplies:

En anglais, cela signifie «si smartreplies a un contenu en elle. "Les commandes en retrait sous qui sont effectués que si certaines entrées ont été ajoutés à la smartreplies liste, qui ne se produit que si un ou plusieurs des mots le joueur est entré ont été trouvés dans le dictionnaire.

Dans ce cas, vous voulez retourner l'un des éléments de la smartreplies liste pour le programme principal, donc en choisir un au hasard dans la liste et l'utilisation retour de le renvoyer au programme principal et quitter la fonction.

Après cela, utilisez la autre commande. En clair, cela signifie autrement, et il est relié à la si commande. Alors si smartreplies a un contenu en elle, les commandes sont effectués de renvoyer une réponse appropriée, choisi au hasard.

Lorsque aucun des mots du joueur ont été trouvés dans le dictionnaire et ainsi smartreplies est vide, les instructions en retrait sous le autre commande sont effectués à la place. La fonction envoie un message vide (“ ”) Revenir au programme principal et quitter la fonction.


» » » » Comment faire pour créer la fonction de consultation de dictionnaire en python sur la PI de framboise