Python实战整活之聊天机器人
作者:Temmie1024 发布时间:2022-10-13 09:57:50
标签:python,聊天机器人
一、前言
刚刚学了一些python文件读写的内容,先跑过来整活了。顺便复习一下之前学的东西。
import time
doc_local='D:\learning_folder\interaction.txt'
def iRead():
fr = open(doc_local, 'r')
message=fr.read()
return message
def iWrite(message):
fw = open(doc_local, 'w')
fw.write(message)
fw.close()
def dTime(num):
a=time.time()
b=time.time()
while (b-a)<num:
b=time.time()
return None
answer={'i am temmie':'you are temmie? who am i?','temmie':'temmie!!!','wang!':'wangwangwang!!!'}
iWrite('test begin')
message0 = iRead()
print(message0)
while True:
dTime(1.0000000)
mes = iRead()
if mes!=message0:
v=answer.get(mes)
if v==None:
if mes=='q' :
print('退出运行')
break
else:
print('message:', mes, end='\t')
a_out=('temmie say again:{0}'.format(mes))
message0 = a_out
iWrite(a_out)
print(a_out)
else:
print('message:', mes, end='\t')
b_out=('{0}'.format(answer.get(mes)))
message0 =b_out
iWrite(b_out)
print('answer:',b_out)
效果呢,就是你在这个位置的记事本里写东西然后保存,它会回复你消息,如果你说的话在规定的字典中,它就会回你预设好的话。如果没有预设,就会重复你的话(复读机)。
我把每次输入与返回都进行了输出
二、效果演示
你甚至可以跟它接crepper,如果你足够闲,也可以整个成语接龙。
三、完整代码
三个函数分别定义读取内容、写入内容、与定时
def iRead():
fr = open(doc_local, 'r')
message=fr.read()
return message
def iWrite(message):
fw = open(doc_local, 'w')
fw.write(message)
fw.close()
def dTime(num):
a=time.time()
b=time.time()
while (b-a)<num:
b=time.time()
return None
answer是预设回答的字典。
先写入内容,清空之前的文字,提示程序开始。读取文件内容,就是'test begin'
iWrite('test begin')
message0 = iRead()
然后是一个死循环,直到你输入了q,才会退出。
每隔1秒读取一次文件中的内容,如果文件内容没变视为没输入,文件内容变化则对字典进行检索,返回None证明无对应答案,则复读。如果返回了值则输出该值。
while True:
dTime(1.0000000)
mes = iRead()
if mes!=message0:
v=answer.get(mes)
if v==None:
if mes=='q' :
print('退出运行')
break
else:
print('message:', mes, end='\t')
a_out=('temmie say again:{0}'.format(mes))
message0 = a_out
iWrite(a_out)
print(a_out)
else:
print('message:', mes, end='\t')
b_out=('{0}'.format(answer.get(mes)))
message0 =b_out
iWrite(b_out)
print('answer:',b_out)
来源:https://blog.csdn.net/Temmie1024/article/details/115980732
0
投稿
猜你喜欢
- asp压缩access数据库,具体asp代码见下: Class DatabaseTools &n
- 在某些情况下,比如自动补全(auto complete)的输入框中,需要使用keyup事件来监听键盘的输入以迅速作出回应。关键在于keyup
- Broadcast广播是numpy对不同形状(shape)的数组进行数值计算的方式,对数组的算术运算通常在相应的元素上进行。如果两个数组a和
- 从事API相关的工作很有挑战性,在高峰期保持系统的稳定及健壮性就是其中之一,这也是我们在Mailgun做很多压力测试的原因。这么久以来,我们
- 不用整天为美化select控件烦恼了。1、可批量美化select控件。2、可以有onchange句柄。3、触发onchange的函数可带参数
- 关于 游标 if,for 的例子 create or replace procedure peace_if is cursor var_c
- 本文实例讲述了python3 property装饰器实现原理与用法。分享给大家供大家参考,具体如下:学习python的同学,慢慢的都会接触到
- 导读一篇用PyTorch Lighting提供模型服务的完全指南。纵观机器学习领域,一个主要趋势是专注于将软件工程原理应用于机器学习的项目。
- 安装jieba库教程jieba库是一款优秀的 Python 第三方中文分词库,jieba 支持三种分词模式:精确模式、全模式和搜索引擎模式,
- 一、问题描述当用JS调用form的方法submit直接提交form的时候,submit事件不响应。为什么?知道的请回复。类比一下,我用inp
- 目录1、requests项目单元测试状况2、简单工具类如何测试2.1 test_help 实现分析2.2 test_hooks 实现分析2.
- 起步在django框架中,用的是 pytz 库处理时区问题,所以我也尝试用这个库来处理。但发现了一个奇怪的问题:import datetim
- 通过XML使系统之间的数据交换变得更简单,因为它与编程语言无关,刚引入XML的概念时,是通过一个脚本或应用程序解析XML数据,将其转换为适合
- 字符串遍历>>> a_str = "hello itcast">>> for cha
- 在不同平面上绘制二维条形图。本实例制作了一个3d图,其中有二维条形图投射到平面y=0,y=1,等。演示结果:完整代码:from mpl_to
- 序言:刚结束公司的三个月试用期,意味着我即将正式步入社会成为广大从事IT行业的一员。作为一个编程小白,无论从技术层面还是知识层面都是比较薄弱
- 这几天一直在看《Pro JavaScript Techniques》,书中有不少优美、健壮代码,让我不得不惊叹老外对语言这东西的研究程度之深
- ajax开发中, 常遇到下面的几种情况: 1 服务端需要返回一段普通文本给客户端 2 服务端需要返回一段HTML代码给客户端 3 服务端需要
- 本文实例为大家分享了python实现书法碑帖图片分割的具体代码,供大家参考,具体内容如下一、功能实现效果1、选择要分割的碑帖图片2、选择碑帖
- 今天在调试项目的时候出现下面的错误信息:SoapFaultlooks like we got no XML document (D:\php