#做对话
# print('小明:','你好')
# a=input('我:')
# print('小明:','有什么可以效劳的?')
# a=input('我:')
# print('小明:','拜拜')
#你也好,你好吗?
#完成输入字符串与chat_list中的每一个进行比较,并且返回,相似度最大值索引
import my_baidu_img_dwn as bd_dwn
import turtle as t
def str_cmp_base_cnt(str1,str2):
cnt_word = 0;
for i in str1:
if i in str2:
cnt_word += 1;
cmp_rate = cnt_word * min((str1.__len__() / str2.__len__()), (str2.__len__() / str1.__len__()))
return cmp_rate
def get_chat_str_index(str1):
rate_list=[]#保存比较的结果
for item in chat_list:
rate_list.append(str_cmp_base_cnt(str1,item))#只保留第一个值
#照这个相似度列表最大值对应的索引
if(max(rate_list)!=0):
index_out=rate_list.index(max(rate_list))
return index_out
else:
return -10
def draw_peiqi():
t.speed(0)
t.pensize(4)
t.hideturtle()
t.colormode(255)
t.color((255, 155, 192), "pink")
t.setup(840, 500)
t.speed(10)
# 鼻子
t.pu()
t.goto(-100, 100)
t.pd()
t.seth(-30)
t.begin_fill()
a = 0.4
for i in range(120):
if 0 <= i < 30 or 60 <= i < 90:
a = a + 0.08
t.lt(3) # 向左转3度
t.fd(a) # 向前走a的步长
else:
a = a - 0.08
t.lt(3)
t.fd(a)
t.end_fill()
t.pu()
t.seth(90)
t.fd(25)
t.seth(0)
t.fd(10)
t.pd()
t.pencolor(255, 155, 192)
t.seth(10)
t.begin_fill()
t.circle(5)
t.color(160, 82, 45)
t.end_fill()
t.pu()
t.seth(0)
t.fd(20)
t.pd()
t.pencolor(255, 155, 192)
t.seth(10)
t.begin_fill()
t.circle(5)
t.color(160, 82, 45)
t.end_fill()
# 头
t.color((255, 155, 192), "pink")
t.pu()
t.seth(90)
t.fd(41)
t.seth(0)
t.fd(0)
t.pd()
t.begin_fill()
t.seth(180)
t.circle(300, -30)
t.circle(100, -60)
t.circle(80, -100)
t.circle(150, -20)
t.circle(60, -95)
t.seth(161)
t.circle(-300, 15)
t.pu()
t.goto(-100, 100)
t.pd()
t.seth(-30)
a = 0.4
for i in range(60):
if 0 <= i < 30 or 60 <= i < 90:
a = a + 0.08
t.lt(3) # 向左转3度
t.fd(a) # 向前走a的步长
else:
a = a - 0.08
t.lt(3)
t.fd(a)
t.end_fill()
# 耳朵
t.color((255, 155, 192), "pink")
t.pu()
t.seth(90)
t.fd(-7)
t.seth(0)
t.fd(70)
t.pd()
t.begin_fill()
t.seth(100)
t.circle(-50, 50)
t.circle(-10, 120)
t.circle(-50, 54)
t.end_fill()
t.pu()
t.seth(90)
t.fd(-12)
t.seth(0)
t.fd(30)
t.pd()
t.begin_fill()
t.seth(100)
t.circle(-50, 50)
t.circle(-10, 120)
t.circle(-50, 56)
t.end_fill()
# 眼睛
t.color((255, 155, 192), "white")
t.pu()
t.seth(90)
t.fd(-20)
t.seth(0)
t.fd(-95)
t.pd()
t.begin_fill()
t.circle(15)
t.end_fill()
t.color("black")
t.pu()
t.seth(90)
t.fd(12)
t.seth(0)
t.fd(-3)
t.pd()
t.begin_fill()
t.circle(3)
t.end_fill()
t.color((255, 155, 192), "white")
t.pu()
t.seth(90)
t.fd(-25)
t.seth(0)
t.fd(40)
t.pd()
t.begin_fill()
t.circle(15)
t.end_fill()
t.color("black")
t.pu()
t.seth(90)
t.fd(12)
t.seth(0)
t.fd(-3)
t.pd()
t.begin_fill()
t.circle(3)
t.end_fill()
# 腮
t.color((255, 155, 192))
t.pu()
t.seth(90)
t.fd(-95)
t.seth(0)
t.fd(65)
t.pd()
t.begin_fill()
t.circle(30)
t.end_fill()
# 嘴
t.color(239, 69, 19)
t.pu()
t.seth(90)
t.fd(15)
t.seth(0)
t.fd(-100)
t.pd()
t.seth(-80)
t.circle(30, 40)
t.circle(40, 80)
# 身体
t.color("red", (255, 99, 71))
t.pu()
t.seth(90)
t.fd(-20)
t.seth(0)
t.fd(-78)
t.pd()
t.begin_fill()
t.seth(-130)
t.circle(100, 10)
t.circle(300, 30)
t.seth(0)
t.fd(230)
t.seth(90)
t.circle(300, 30)
t.circle(100, 3)
t.color((255, 155, 192), (255, 100, 100))
t.seth(-135)
t.circle(-80, 63)
t.circle(-150, 24)
t.end_fill()
# 手
t.color((255, 155, 192))
t.pu()
t.seth(90)
t.fd(-40)
t.seth(0)
t.fd(-27)
t.pd()
t.seth(-160)
t.circle(300, 15)
t.pu()
t.seth(90)
t.fd(15)
t.seth(0)
t.fd(0)
t.pd()
t.seth(-10)
t.circle(-20, 90)
t.pu()
t.seth(90)
t.fd(30)
t.seth(0)
t.fd(237)
t.pd()
t.seth(-20)
t.circle(-300, 15)
t.pu()
t.seth(90)
t.fd(20)
t.seth(0)
t.fd(0)
t.pd()
t.seth(-170)
t.circle(20, 90)
# 脚
t.pensize(10)
t.color((240, 128, 128))
t.pu()
t.seth(90)
t.fd(-75)
t.seth(0)
t.fd(-180)
t.pd()
t.seth(-90)
t.fd(40)
t.seth(-180)
t.color("black")
t.pensize(15)
t.fd(20)
t.pensize(10)
t.color((240, 128, 128))
t.pu()
t.seth(90)
t.fd(40)
t.seth(0)
t.fd(90)
t.pd()
t.seth(-90)
t.fd(40)
t.seth(-180)
t.color("black")
t.pensize(15)
t.fd(20)
# 尾巴
t.pensize(4)
t.color((255, 155, 192))
t.pu()
t.seth(90)
t.fd(70)
t.seth(0)
t.fd(95)
t.pd()
t.seth(0)
t.circle(70, 20)
t.circle(10, 330)
t.circle(70, 30)
t.mainloop()
chat_list=['你好','你也好,有什么可以效劳的?','天气怎么样','西北风偏多','拜拜','就这么走了吗','那你还想怎样','嘤,我就知道你不爱我了','啥','滚吧','好的,再见']
cmd_list=['画六边形','画小猪佩奇']
print('小明:','你好')
i=0
'''
床前明月光
1.检测匹配度为0
2.这时知道,没有这个问题
处理:
给用户说明一下,这个问题,我的存储中没有,还没学会,能不能告诉我怎么回答,
我把这个回答,加入到我的存储中 chat_list
如果用户允许,用户回答这个问题
小明就要加入这个问题及回答
#保存对话内容
1.在刚开始运行的时候先读取
2.在添加新内容的时候,写入文件
'''
# chat_list更新
# try:
# with open('mychat.txt', 'r', encoding='utf-8') as f:
# chat_list=f.readlines()
# char_list=[i[:-1] for i in chat_list]
# except FileNotFoundError:
# print('没有对话!')
while True:
with open('mychat.txt', 'w', encoding='utf-8') as f:
f.write('\n'.join(chat_list))
a=input('我:')
if a == '退出':
break
elif '佩奇' in a:
draw_peiqi()
print('小明:好的,我画完了,我们再聊点什么呢?')
continue
m=get_chat_str_index(a)
if m==-10:
print('小明:这个问题我还没有学会怎样回答,可以告诉我答案吗?')
b=input('我:')
if b in '可以好的没问题嗯ok':
c=input('我:')
chat_list.append(a)
chat_list.append(c)
print('小明:好的,我学会了,我们聊点什么呢?')
else:
break
else:
print('小明:',chat_list[(m+1)%chat_list.__len__()])
SDUWH2019-2020寒假python实训--my_chat_myself
最新推荐文章于 2024-05-14 11:00:23 发布