Como criar a função look-up do dicionário em python na pi framboesa
Para mover além das funções básicas em Python, criar a função de olhar para cima 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.
Conteúdo
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 amor 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.
Video: Curso de Python - Aula 61 - Introdução aos Dicionários - eXcript
Aqui está a função em sua totalidade, para que possa ver como todos os bits se encaixam:
def dictionarycheck (mensagem): mensagem = 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 corda 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 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 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 possíveis respostas 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 entrou por sua vez. 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 afirmação condicional, que começa com E se. A instrução condicional é usada para habilitar o computador para tomar uma decisão sobre se ele 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 o programa parar e relatar um erro se você tentar usar uma chave que não está no dicionário:
Video: Python 14 - Dicionários
se eachword em chatdictry: resposta = chatdictry [eachword] smartreplies.append (resposta)
o cada palavra variável contém uma das palavras o jogador entrou, 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 recuo é usada 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 acrescenta 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.
Video: TWP400 Revisão de Dicionários
Quando você sai 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 somente se algumas entradas foram adicionadas à smartreplies lista, que só acontece se um ou mais das palavras do jogador entraram foram encontradas no dicionário.
Nesse caso, você quer 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, use o 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 realizados para enviar de volta uma resposta apropriada, escolhida ao acaso.
Quando nenhuma das palavras do jogador foram encontradas no dicionário e assim smartreplies está vazio, as instruções recuadas por baixo do outro comando são realizadas em seu lugar. A função envia uma mensagem de vazio (“”) De volta ao programa principal e sai da função.