win10srs adp button

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

Para ir más allá de las funciones básicas en Python, cree la función de búsqueda de diccionario. La Raspberry Pi te permite crear una función que toma el texto del jugador y verifica las respuestas relevantes. Para hacer esto, usará diccionarios y funciones, y agregará algunas ideas nuevas relacionadas con los bucles, las cadenas y la toma de decisiones.

La función tiene solo 12 líneas, pero es bastante sofisticada. Debe tomar lo que ingresó el jugador y verificar cada palabra para ver si el diccionario tiene una respuesta para esa palabra. El jugador puede usar 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 música pueden estar en el diccionario. Alternativamente, es posible que el reproductor no use palabras que el programa reconozca, por lo que también debe diseñar su función para hacer frente a esa situación.

Aquí está la función en su totalidad, para que pueda ver cómo encajan todos los bits:

def dictionarycheck (mensaje):
 mensaje = mensaje.bajo ()
 playerwords = message.split ()
 respuestas inteligentes = []
 para cada palabra en palabras de jugador:
  si cada palabra en chatdictry:
   answer = chatdictry [cada palabra]
   smartreplies.append (respuesta)
 si inteligente responde:
  replychosen = random.randint (0, len (respuestas inteligentes)) - 1
  devolver respuestas inteligentes [respuesta elegida]
 demás:
  regreso "

Las siguientes dos líneas presentan métodos de cadena . Son como funciones integradas que se adjuntan a una cadena y la transforman de alguna manera. El método lower () convierte una cadena en minúsculas. Esto es importante porque si un jugador usa letras mayúsculas o mayúsculas y minúsculas, no coincidirán con las palabras en minúscula que ha usado en las claves de su diccionario.

LEER  Cómo usar GPIO ZERO en su Raspberry Pi

En lo que respecta al programa, hola y hola no son lo mismo. El método split () toma una cadena y la divide en una lista de las palabras que la componen. Las primeras dos líneas de nuestra función, luego, convierten el contenido de la variable de mensaje en una versión en minúsculas de sí misma, y ​​luego crean una nueva lista de las palabras que ingresó el jugador, llamadas playerwords .

Vas a almacenar posibles respuestas para el jugador en una lista llamada respuestas inteligentes , así que créala como una lista vacía.

El siguiente paso es configurar un ciclo que recorra la lista de palabras que el jugador ingresó a su vez. Cuando usó un bucle for , se abrirá camino a través de una lista de palabras. Cada vez alrededor del ciclo, la variable eachword contiene el siguiente elemento de la lista de palabras que ingresó el jugador.

La siguiente línea presenta una nueva idea, la declaración condicional , que comienza con if . Una declaración condicional se usa para permitir que la computadora tome una decisión sobre si debe llevar a cabo ciertas instrucciones. Lo encontrará en casi todos los programas que escriba. Aquí, se usa para evitar que el programa se detenga e informe de un error si intenta usar una clave que no está en el diccionario:

  si cada palabra en chatdictry:
   answer = chatdictry [cada palabra]
   smartreplies.append (respuesta)

La variable eachword contiene una de las palabras que ingresó el jugador, por lo que la instrucción if verifica si esa palabra está en el diccionario y solo lleva a cabo las siguientes dos instrucciones si lo están.

LEER  Cómo configurar su Raspberry Pi con Raspbian

Observe cómo se usa la sangría aquí para mostrar qué comandos pertenecen juntos; en este caso, qué comandos están controlados por la instrucción if . Si la palabra está en el diccionario, el programa la busca y agrega la respuesta resultante a la lista de respuestas inteligentes , usando append () .

Este proceso se repite para cada palabra que ingresó el jugador, pero eso es todo lo que sucede en el ciclo. La siguiente línea no tiene sangría debajo de la instrucción for , por lo que no está controlada por ella.

Cuando salga del ciclo, verifique si la lista de respuestas inteligentes tiene algo, usando simplemente

 si inteligente responde:

En inglés, esto significa “si las respuestas inteligentes tienen contenido”. Los comandos con sangría debajo se llevan a cabo solo si se agregaron algunas entradas a la lista de respuestas inteligentes , lo que solo ocurre si una o más de las palabras que ingresó el jugador se encuentran en el diccionario.

En ese caso, desea devolver uno de los elementos de la lista de respuestas inteligentes al programa principal, así que elija uno al azar de la lista y use return para enviarlo de vuelta al programa principal y salir de la función.

Después de eso, use el comando else . En inglés simple, esto significa lo contrario , y está unido al comando if . Entonces, si smartreplies tiene contenido, los comandos se ejecutan para enviar una respuesta adecuada, elegida al azar.

Cuando ninguna de las palabras del jugador se encuentra en el diccionario y las respuestas inteligentes están vacías, las instrucciones sangradas debajo del comando else se ejecutan en su lugar. La función envía un mensaje vacío ( “” ) de regreso al programa principal y sale de la función.

LEER  Raspberry Pi para niños: creación de robots virtuales con código

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *