7.条件语句

Sep 29, 2017

小实例,问答机器人

基础知识学了其实也有一段时间了,做几个小的实例还是绰绰有余的。今天我们就一起实操,写一个问答机器人吧

问题来了,要做一个问答机器人我们首先得知道会用到哪些学到的知识点:

  • 字典:存储机器人的相关对话内容,让机器人有相关的“记忆”
  • 循环(嵌套循环):一直去响应我们对应的问题
  • 判断: 执行流程操作

搞清楚了机器人的相关运作流程之后就开搞吧,流程是比较复杂的,不过相信你能搞定。上栗子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#/usr/bin/env python3
#coding:utf-8

dict = {
"你好" : "你好",
"很高兴见到您" : "我也很能高兴见到你",
"你喜欢吃什么水果 " : "我喜欢橘子",
"你今年多大了" : "27 岁了",
"你很漂亮" : "谢谢"
}

flag = ('c')
work = True

print('你好,我是python机器人')
print('你有时间跟我聊聊吗')
while flag == 'c' or 't':
flag = input("你可以选择是否跟我聊天(c),还是决定练习下我的对话能力(t),或者让我推下(l)?(c/t/l)")
if flag == "t":
question = input("请输入你想问的:")
answer = input("请输入问题答案:")
dict[str(question)] = str(answer)
print("学习成功")
print("现在我已经学会了%d个问题"%len(dict))
continue
elif flag == 'c':
if len(dict) == 0:
print("现在我还不会回答任何问题,请先让我学习:")
continue
chat_word = input("谢谢你跟我聊天,你想对我说点什么?:")

for key in sorted(dict.keys()):
if str(chat_word) == key:
work = True
print(dict[key])
break
else:
work = False
if work == False:
print("Sorry,这个问题我回答不上来")
work = True
elif flag == 'l':
print("好的,那我们下次再聊")
break
else:
print("请输入提示指令")
continue

这是讲字典,循环,判断结核的比较好的一个实例;为了方便你以后能灵活使用相关技术,希望能够多思考将这些知识点组合运用起来转化称自己的思路,不断的练习方能起到学以致用。我们的Python初级课程差不多也就到这了,接下来将会进入到中级课程当中