Como criar a função Look-Up Dictionary em Python sobre o Raspberry Pi

Para mover além das funções básicas em Python, criar a função de consultar o dicionário. O Raspberry Pi permite que você construa uma função que recebe texto e verificações do jogador para quaisquer respostas relevantes. Para fazer isso, você vai usar dicionários e funções, e adicionar em algumas novas ideias relacionadas com laços, cordas, e tomada de decisão.

A função é de apenas 12 linhas longas, mas é bastante sofisticado. Ele precisa tomar o que o jogador entrou, e verificar cada palavra nele para ver se o dicionário tem uma resposta para essa palavra. O jogador pode usar mais de uma palavra que está no dicionário.

Por exemplo, se o jogador diz "Eu amo música pop", as palavras amar e música pode tanto estar no dicionário. Alternativamente, o jogador pode usar nenhuma palavra o programa reconhece, então você precisa para projetar sua função para lidar com essa situação também.

Aqui está a função em sua totalidade, para que possa ver como todos os bits se encaixam:

def dictionarycheck (mensagem): message = message.lower () playerwords = message.split () smartreplies = [] para eachword em playerwords: se eachword em chatdictry: Resposta = chatdictry [eachword] smartreplies.append (resposta) se smartreplies: replychosen = random.randint (0, len (smartreplies)) - 1RETURN smartreplies [replychosen] else: return ""

As próximas duas linhas introduzir métodos de string. Estes são como funções internas que estão ligados a uma cadeia de caracteres e transformá-lo de alguma forma. o mais baixo() método converte uma string em letras minúsculas. Isto é importante porque se um jogador usa letras maiúsculas ou letras maiúsculas e minúsculas, não irá corresponder as palavras minúsculas que você usou em suas chaves de dicionário.

Na medida em que o programa está em causa, Olá e Olá não são a mesma coisa. o Dividido() método leva uma string e divide-lo em uma lista de suas palavras constituintes. As duas primeiras linhas da nossa função, então, transformar o conteúdo da variável de mensagem em uma versão minúscula de si mesmo, e, em seguida, criar uma nova lista de palavras do jogador entraram, chamado playerwords.

Você está indo para armazenar respostas possíveis para o jogador em uma lista chamada smartreplies, assim criar isso como uma lista vazia.

O próximo passo é a criação de um loop que passa a lista de palavras que o jogador inseridos no turn. Quando você usou um para loop, você vai trabalhar o seu caminho através de uma lista de palavras. Cada vez em torno do laço, a variável cada palavra contém o próximo item da lista de palavras do jogador inseridos.

A próxima linha introduz uma nova ideia, a declaração condicional, que começa com E se. A instrução condicional é usado para permitir que o computador para tomar uma decisão sobre se deve realizar certas instruções. Você vai se deparar com ela em quase todos os programas que você escreve. Aqui, ele está sendo usado para evitar que o programa parar e relatar um erro se você tentar usar uma chave que não está no dicionário:

 se eachword em chatdictry: Resposta = chatdictry [eachword] smartreplies.append (resposta)

o cada palavra variável contém uma das palavras o jogador inseridos, de modo que o E se instrução verifica se essa palavra é no dicionário e só realiza as próximas duas instruções se eles são.

Observe como o recuo é usado aqui para mostrar que comanda pertencem um ao outro - neste caso, que comanda são controlados pelo E se declaração. Se a palavra está no dicionário, o programa procura-lo e adiciona a resposta resultante para o smartreplies lista, utilizando acrescentar().

Este processo é repetido para cada palavra que o jogador entrou, mas isso é tudo o que acontece no circuito. A próxima linha não é recuada abaixo da para declaração, por isso não é controlado por ele.

Quando você sair do loop, verifique se a lista smartreplies tem alguma coisa nele, usando simplesmente

 se smartreplies:

Em Inglês, isso significa que "se smartreplies tem conteúdo nele ". Os comandos recuados embaixo que são realizadas apenas se algumas entradas foram adicionadas à smartreplies lista, que só ocorre se um ou mais das palavras do jogador foram introduzidos encontrada no dicionário.

Nesse caso, você deseja retornar um dos itens da smartreplies lista para o programa principal, assim que escolher um aleatoriamente da lista e uso Retorna para enviá-lo de volta para o programa principal e sair da função.

Depois disso, o uso outro comando. Na planície Inglês, isso significa de outra forma, e está ligado ao E se comando. Então se smartreplies tem conteúdo nele, os comandos são executados para enviar de volta uma resposta apropriada, escolhida ao acaso.

Quando nenhuma das palavras do jogador foram encontrados no dicionário e assim smartreplies está vazio, as instruções recuado sob o outro comando são realizadas em seu lugar. A função envia uma mensagem vazia (# 147- # 148-) De volta para o programa principal e sai da função.

menu