Bom, estou escrevendo um pequeno robô que conversa com você em python, que depois de estar num estágio mais avançado de desenvolvimento planejo abrir o código e colocar no source forge.net... Mas enfim, o programa captura um raw_input do usuário, remove a pontuação e separa cada uma das palavras transformando a variável numa list.
Já achei métodos de verificar se o valor numa ordem específica numa lista, mas eu queria um jeito de verificar se algum dos valores da lista é correspondente a alguma coisa. Por exemplo, eu quero descobrir se algum dos valores da list (qualquer um) é igual a "oi".
Meu código está assim:
Código:
#! usr/bin/python
# -*- encoding: utf-8 -*-
fala = raw_input("Diga algo:") #Pede que o usuário diga algo que será armazenado na variável "fala"
fala = fala.replace(".", " ") #Troca o caractere "." por um espaço
fala = fala.replace("?", " ") #Troca o caractere "?" por um espaço
fala = fala.replace("!", " ") #Troca o caractere "!" por um espaço
fala = fala.replace(",", " ") #Troca o caractere "," por um espaço
fala.split(" ") #Transforma a string "fala" em uma list separando as palavras
Eu já tentei isso:
Mas com esse jeito, se algum dos valores for algo como "depois", ele vai dizer que é igual a oi.
Também já tentei o search e o math do módulo re, mas não é exatamente isso. O match só acha o "oi" se esta for a primeira palavra, enquanto o search continua achando o depois.
E esse método procura na string, eu quero procurar numa lista.
Uma lista tem vários valores, não é? Por exemplo:
Lista 1
Código:
lista = ['a', 'b', 'c']
Lista 2
Código:
lista = ['d', 'e', 'f']
Eu quero um método pra verificar se algum dos valores da lista é igual a c em uma condição, na lista 1 do meu exemplo a condição seria verdadeira e na 2 falsa. Será que deu pra entender? Acho que não sou muito bom pra explicar.
Alguém sabe um método pra fazer isso?