import my_chat_function as cf
import my_baidu_img_dwn as bd_dwn
# 做对话
chat_list = ['你好', '你也好,有什么可以效劳的?', '天气怎么样', '西北风偏多', '拜拜']
cmd_list = ['画六边形','画小猪佩奇','打开百度','下载或搜索']
i = 0
# 下载“李小龙”
'''
床前明月光
1. 检测匹配度 0
2. 这是知道,没有这个问题
处理:
给用户说明一下,这个问题,我的存储中没有,还没学会,能不能告诉我怎么回答,
我把这个回答,加入到我的存储中 chat_list
如果用户准了,用户回答这个问题
小明就要,加入这个问题及回答
# 保存对话内容
1. 在刚开始运行的时候,先读取
2. 添加新内容的时候,写入文件
'''
# chat_list更新
try:
# FileNotFoundError: [Errno 2] No such file or directory: 'mychat.txt'
with open('mychat.txt','r',encoding='utf8') as f:
# chat_list = f.readlines() 1-2-3 分隔符’-‘ 得到的结果 [1,2,3]
chat_list = f.read().split('\n') # .join的反向操作
# 假设在尾部都多一个换行符’\n‘, 去掉最后一个换行符
# chat_list = [i[:-1] for i in chat_list]
except FileNotFoundError:
print('没有外部对话内容!')
print('小明:', '你好')
while True:
a = input('老陈:')
# 停止语句
if a == '退出':
break
# 完成a与chat_list中的所有字符串进行比较,选择相似度最大的那个作为目标索引
# print('小明:', chat_list[chat_list.index(a) + 1])
#
cur_index_chat, cur_rate_chat = cf.get_chat_str_index(a, chat_list)
cur_index_cmd, cur_rate_cmd = cf.get_chat_str_index(a, cmd_list)
# 看一下谁最大,cmd chat
if cur_rate_cmd>cur_rate_chat:
cur_rate = cur_rate_cmd
cur_index = cur_index_cmd
if cmd_list[cur_index] == '画六边形':
from RobotOnclass import chp34
chp34.my_draw_six()
print('小明:', '已经为您画了很多六边形,您还满意。')
elif cmd_list[cur_index] == '画小猪佩奇':
import peiqi
peiqi.my_draw_peiqi()
print('小明:', '已经为您画了很多小猪佩奇,您还满意。')
elif cmd_list[cur_index] == '打开百度':
import webbrowser
webbrowser.open('www.baidu.com')
print('小明:', '已经为您打开了百度,您还满意。')
elif cmd_list[cur_index] == '下载或搜索':
# 下载“李小龙”
word = a[a.index('“')+1:a.index('”')]
page_num = 2
img_list = bd_dwn.my_download(word,page_num)
bd_dwn.my_save_img(f'download/{word}', img_list, word)
print('小明:', f'已经为您下载好了{word},存放到了download/{word}路径下,您还满意。')
else:
cur_rate = cur_rate_chat
cur_index = cur_index_chat
if cur_rate < 1:
print('小明:', '这个问题,我的存储中没有,还没学会,能不能告诉我怎么回答?1:是,2:否')
b = input('老陈:')
if b == '1':
print('小明:', '我准备好接收了,请讲:')
c = input('老陈:')
# 保存
chat_list.append(a)
chat_list.append(c)
print('小明:', '我已经接收了,谢谢。')
# 添加完成后,需要保存一下
with open('mychat.txt', 'w', encoding='utf8') as f:
f.write('\n'.join(chat_list)) # 使用字符串’\n‘的拼接里列表中的所有元素,构成一个长字符串
# f.writelines(chat_list)
else:
cur_index = -1
print('小明:', chat_list[(cur_index + 1) % chat_list.__len__()])