【发布时间】:2016-09-10 18:39:04
【问题描述】:
我目前正在尝试创建一个小型版本的聊天机器人,它将响应终端中的不同关键字输入。例如,如果我写inv,它将打印出它当前的库存,它可能看起来像这样:
Item: sword
Place in inventory: 1
Item: axe
Place in inventory: 2
Item: shield
Place in inventory: 3
Item: bow
Place in inventory: 4
Item: flower
Place in inventory: 5
那部分我已经解决了。当我要提供inv pick hammer 或inv drop hammer 之类的输入时,就会出现问题。现在我必须以某种方式处理相同的开始关键字可能在多种情况下出现。
我创建了某种处理程序,它接受一个参数(来自用户的输入)并将其拆分为一个列表。看起来像这样:
def splitIntoWords(argOne):
"""
Function that splits list into words
"""
#list to keep and split up the user input
inputList = []
inputList = argOne.split()
#print(str(inputList) + "splitIntoWords")
#term we want to search for
term = "citat"
quitOne = "q"
replyHej = "hej"
replyLunch = "lunch"
inventory = "inv"
invPick = "pick"
#invDrop = "drop"
lenght = len(inputList)
nextWord = inputList[lenght-1]
if term in inputList:
return term
elif quitOne in inputList:
return quitOne
elif replyHej in inputList:
return replyHej
elif replyLunch in inputList:
return replyLunch
elif inventory in inputList:
if invPick in inputList:
return ("q")
else:
return inventory
else:
return result
如您所见,我已经开始在 elif 中执行 if 并尝试对同一个列表进行多次检查,但这对我不起作用。 有没有其他方法可以检查列表中是否出现了多个关键字?
【问题讨论】:
-
@UnknownDeveloper,感谢您编辑我的帖子
-
没问题 :) @anderssinho
-
如何确定拆分数组的大小,如果用户输入了 3 个单词并且第一个单词是“inv”,那么你就去检查下一个等等。
-
@DZDomi,所以不是 inputList 中的 elif 库存:如果 inputList 中的 invPick:你的意思是我应该尝试类似: elif inventory in inputList: if len(inputlist) == 3 Or?
标签: python list python-3.x