我没有那么多用python编程的经验,所以我的问题可能非常简单。我正在为学校做一个项目,在这个项目中,我们需要从用户输入中创建一个输出(我们想模仿Eliza,但以一种非常简单的方式)。现在,这个程序唯一要做的就是查找关键字并相应地做出响应。然而,由于我在一所法语学校,而且所有的东西都是法语的,所以我需要使用口音(例如:é,è,á)。问题就在这里出现了:我不能在预定义的关键字列表中使用重音符号(因此它不是来自用户输入的关键字,而是在我自己的程序中:/)
这里有整个程序:
#Greeting from bot
print("Salut!")
(这里是预定义的关键字,我们用它来知道用户的句子中是否有否定词以及是否有任何贬低人格的形容词-我们需要将其放大,以便使我们的机器人更人性化,但这只是原则)
^{pr2}$但问题是:为了运行我们的程序,我们必须删除所有的重音符号。所以像gure,cré,mécanique,invente,programé这样的词就变成了guere,cree,mecanique,invente,programme,在某些情况下它改变了这个词的意思(例如programme变成了名词而不是形容词)
adj_neg_decl = None
nega = None
#FONCTION: phrase declarative, pas de negations, adjectif pejoratif
def decl_non_neg_adj_neg(statement):
if (statement.endswith('.')) and (nega == False) and (adj_neg_decl == True):
print(AnD_ici + '? Mais moi je suis humain. Ca se voit pas?')
else:
#Only for testing
print('tralalalala')
while True:
statement = raw_input("> ").lower()
if statement == "au revoir":
print("Au revoir!")
break
(这里我们只需查找否定词和形容词-如果你有其他(更有效)的方法来做,我很乐意听听你的建议!我还不如学点新东西:)
for i in negation:
if i in statement:
nega = True
break
else:
nega = False
for i in AnD:
if i in statement:
adj_neg_decl = True
AnD_ici = i
break
else:
adj_nej_decl = False
decl_non_neg_adj_neg(statement)
#Reset variables
for var in (adj_neg_decl, nega):
var = None
我曾想过使用unicode或utf-8,但我真的不知道如何使用它。。。这样做对吗?或者我还能做点什么吗?在
非常感谢您的帮助:)
我使用的是python2,我认为列表可能是存储关键字的好方法。在
我可以直接输入口音。对于é,我按住Alt键,然后从数字键盘上按下这些数字:130。(如果要查找其他字符,请在您最喜欢的搜索引擎中搜索
windows alt key symbols
。)使用
in
运算符来判断某个给定单词是否在列表中,这可能会很有帮助。在这里有一个例子。在
博恩机会!在
相关问题 更多 >
编程相关推荐