prucommercialre.com


Cómo crear la función de diccionario de búsqueda en Python en la Raspberry Pi

Para ir más allá de las funciones básicas en Python, cree el mirar para arriba la función de diccionario. El Raspberry Pi le permite construir una función que toma el texto del jugador y cheques por cualquier respuesta pertinentes. Para ello, vamos a usar diccionarios y funciones, y agrega en algunas nuevas ideas relacionadas con lazos, cuerdas, y la toma de decisiones.

La función está a sólo 12 líneas de largo, pero es muy sofisticado. Tiene que tomar lo que el jugador entró, y comprobar cada palabra en ella para ver si el diccionario tiene una respuesta para esa palabra. El jugador puede utilizar más de una palabra que está en el diccionario.

Por ejemplo, si el jugador dice "Me encanta la música pop", las palabras amor y la música podrían ser ambos en el diccionario. Alternativamente, el jugador puede utilizar ninguna palabra el programa reconoce, por lo que necesita para diseñar su función de hacer frente a esa situación también.

Aquí está la función en su totalidad, por lo que se puede ver cómo todos los bits encajan entre sí:

dictionarycheck def (mensaje):
message = message.lower ()
playerwords = message.split ()
smartreplies = []
para eachword en playerwords:
si eachword en chatdictry:
respuesta = chatdictry [eachword]
smartreplies.append (respuesta)
si smartreplies:
replychosen = random.randint (0, len (smartreplies)) - 1
smartreplies retorno [replychosen]
otra cosa:
volver ""

Las dos líneas siguientes introducen métodos de cadena. Estos son como funciones integradas que están unidos a una cadena y lo transforman de alguna manera. El método más baja () convierte una cadena en minúsculas. Esto es importante porque si un jugador utiliza letras mayúsculas o minúsculas mezcladas, no van a coincidir con las palabras en minúsculas que ha utilizado en sus claves de diccionario.

En lo que se refiere al programa, hola y Hola no son la misma cosa. El método split () toma una cadena y la divide en una lista de sus palabras constituyentes. Las dos primeras líneas en nuestra función, a continuación, a su vez el contenido de la variable de mensaje en una versión en minúsculas de sí mismo, y luego crear una nueva lista de las palabras que el jugador entró, llamada playerwords.

Usted va a almacenar posibles respuestas al jugador en una lista llamada smartreplies, por lo que a medida que crear una lista vacía.

El siguiente paso es la creación de un bucle que va a través de la lista de palabras que el jugador entró a su vez. Cuando se utiliza un bucle for, usted va a trabajar su camino a través de una lista de palabras. Cada vez alrededor del bucle, el eachword variable contiene el siguiente elemento de la lista de las palabras que el jugador entró.

La siguiente línea presenta una nueva idea, la sentencia condicional, que se inicia con si. Una sentencia condicional se utiliza para activar el equipo para tomar una decisión sobre si se debe llevar a cabo determinadas instrucciones. Te encontrarás con que en casi todos los programas que escribes. En este caso, se está utilizando para evitar el programa detener y reportar un error si intenta utilizar una clave que no está en el diccionario:

si eachword en chatdictry:
respuesta = chatdictry [eachword]
smartreplies.append (respuesta)

La variable eachword contiene una de las palabras que el jugador entró, por lo que la sentencia if comprueba si la palabra está en el diccionario y sólo realiza las siguientes dos instrucciones si que son.

Observe cómo la sangría se utiliza aquí para demostrar que domina van de la mano - en este caso, qué comandos se controla mediante la sentencia if. Si la palabra está en el diccionario, el programa lo busca y agrega la respuesta resultante a la lista smartreplies, utilizando append ().

Este proceso se repite para cada palabra que el jugador entró, pero eso es todo lo que sucede en el bucle. La siguiente línea no tiene sangría debajo de la de declaración, así que no es controlado por él.

Al salir del bucle, comprobar si la lista smartreplies tiene nada en ella, utilizando simplemente

si smartreplies:

En Inglés, esto significa que "si smartreplies tiene contenido en ella." Los comandos de sangría debajo que se lleva a cabo sólo si se han añadido algunas entradas a la lista smartreplies, que sólo ocurre si una o más de las palabras que el jugador entró se encontró en el diccionario.

En ese caso, usted quiere devolver uno de los elementos de la lista smartreplies al programa principal, así que elige uno al azar de la lista y utilizar retorno a enviarlo de vuelta al programa principal y salir de la función.

Después de eso, utilice el comando más. En la llanura Inglés, esto significa lo contrario, y se unió al comando if. Así que si smartreplies tiene contenido en ella, los comandos se lleva a cabo para devolver una respuesta adecuada, elegido al azar.

Cuando ninguna de las palabras del jugador se encuentra en el diccionario y así smartreplies está vacía, las instrucciones con sangría bajo el comando de los demás se llevan a cabo en su lugar. La función envía un mensaje vacío ("") de vuelta al programa principal y sale de la función.