2015-12-08 42 views
1

所以,按照我的代码段:Python的 - 使用词典来检查查询和检索答案

ValidInputs = ['wet', 'water', 'liquid', 'mobile', 'iphone'] 
root = Tk() 
def iphone(): 
    while True: 
    Problem = input('State your problem') 
    ProblemSplit = Problem.split(' ') 
    if any(Words in ValidInputs for Words in ProblemSplit): 
     print('Put your phone in the fridge for about 30 minutes, it will remove the moisture inside of your phone') 
     time.sleep(2) 

这工作,但效率低下,我相信。例如,如果我使用输入的问题变量,并输入'我的电话是潮湿的',它会检测到湿确实在列表ValidInputs中,但它将打印相同的答案/解决方案每次。因此,如果我向ValidInputs列表中添加了更多可接受的条目,我不希望它总是打印相同的“将手机放入冰箱中”等等。

所以,我将如何去创造一个字典的格式, 查询:解决 所以,如果从问题分裂任何言语都在查询,打印解决方案。 有什么建议吗?

我一直在这里待了大约一个小时,现在没有运气,我已经接近,但迄今为止,如果你明白我的意思,用我自己的研究,但它变得很烦人,所以,

任何帮助表示赞赏。

+0

您如何通过示例告诉我们您的代码应该做什么? – timgeb

+0

我希望我可以举例,但它还没有完成,也没有正常工作,但基本上,这是一个故障排除程序,它打开GUI,询问用户他们有哪种型号的手机,截至现在他们可以选择iPhone,尽管有一个android的按钮,但我还没有做任何事情,他们进入他们的问题,并检查问题的可能匹配解决方案(我问的问题),但如果没有解决方案可以找到,创建一个文件这应该是发送给技术人员(假技术员哈哈),这只是一个项目,我被给予 – Thom9son

+0

这是否回答你想要的? – Thom9son

回答

2

这是我相信你正在寻找的一个最简单的例子。

solutions = {'wet' : 'put into microwave', 'ring' : 'hit with hammer', 'battery' : 'more jiggawatts'} 

def find_solution(): 
    problems = input('State your problem: ').lower().split(' ') 
    for problem in set(problems): 
     if problem in solutions: 
      print(solutions[problem]) 

while True: 
    find_solution() 
+0

你是一个活着的传奇人物,谢谢你,完美的作品,并使分裂效率更高,哦,jiggawatts部分让我:D – Thom9son

+0

没关系,现在修复,谢谢 – Thom9son