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)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值