Python實(shí)戰(zhàn)整活之聊天機(jī)器人
一、前言
剛剛學(xué)了一些python文件讀寫的內(nèi)容,先跑過(guò)來(lái)整活了。順便復(fù)習(xí)一下之前學(xué)的東西。
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('退出運(yùn)行')
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)
效果呢,就是你在這個(gè)位置的記事本里寫東西然后保存,它會(huì)回復(fù)你消息,如果你說(shuō)的話在規(guī)定的字典中,它就會(huì)回你預(yù)設(shè)好的話。如果沒(méi)有預(yù)設(shè),就會(huì)重復(fù)你的話(復(fù)讀機(jī))。
我把每次輸入與返回都進(jìn)行了輸出
二、效果演示

你甚至可以跟它接crepper,如果你足夠閑,也可以整個(gè)成語(yǔ)接龍。

三、完整代碼
三個(gè)函數(shù)分別定義讀取內(nèi)容、寫入內(nèi)容、與定時(shí)
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是預(yù)設(shè)回答的字典。
先寫入內(nèi)容,清空之前的文字,提示程序開(kāi)始。讀取文件內(nèi)容,就是'test begin'
iWrite('test begin')
message0 = iRead()
然后是一個(gè)死循環(huán),直到你輸入了q,才會(huì)退出。
每隔1秒讀取一次文件中的內(nèi)容,如果文件內(nèi)容沒(méi)變視為沒(méi)輸入,文件內(nèi)容變化則對(duì)字典進(jìn)行檢索,返回None證明無(wú)對(duì)應(yīng)答案,則復(fù)讀。如果返回了值則輸出該值。
while True:
dTime(1.0000000)
mes = iRead()
if mes!=message0:
v=answer.get(mes)
if v==None:
if mes=='q' :
print('退出運(yùn)行')
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)
到此這篇關(guān)于Python實(shí)戰(zhàn)整活之聊天機(jī)器人的文章就介紹到這了,更多相關(guān)python聊天機(jī)器人內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- python機(jī)器學(xué)習(xí)創(chuàng)建基于規(guī)則聊天機(jī)器人過(guò)程示例詳解
- 使用 Python 創(chuàng)建一個(gè)基于規(guī)則的聊天機(jī)器人
- Python調(diào)用兩個(gè)機(jī)器人聊天的實(shí)戰(zhàn)
- Python如何實(shí)現(xiàn)機(jī)器人聊天
- python操作微信自動(dòng)發(fā)消息的實(shí)現(xiàn)(微信聊天機(jī)器人)
- Python使用20行代碼實(shí)現(xiàn)微信聊天機(jī)器人
- 基于python的itchat庫(kù)實(shí)現(xiàn)微信聊天機(jī)器人(推薦)
- python實(shí)現(xiàn)AI聊天機(jī)器人詳解流程
相關(guān)文章
jupyter 實(shí)現(xiàn)notebook中顯示完整的行和列
這篇文章主要介紹了jupyter 實(shí)現(xiàn)notebook中顯示完整的行和列,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04
Python實(shí)現(xiàn)數(shù)據(jù)庫(kù)并行讀取和寫入實(shí)例
本篇文章主要介紹了Python實(shí)現(xiàn)數(shù)據(jù)庫(kù)并行讀取和寫入實(shí)例,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-06-06
mac PyCharm添加Python解釋器及添加package路徑的方法
今天小編就為大家分享一篇mac PyCharm添加Python解釋器及添加package路徑的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-10-10
python?使用第三方庫(kù)requests-toolbelt?上傳文件流的示例
這篇文章主要介紹了python?使用第三方庫(kù)requests-toolbelt?上傳文件流,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-09-09
py3nvml實(shí)現(xiàn)GPU相關(guān)信息讀取的案例分析
這篇文章主要介紹了py3nvml實(shí)現(xiàn)GPU相關(guān)信息讀取,此時(shí)就可以考慮使用py3nvml這樣的工具,針對(duì)于GPU任務(wù)執(zhí)行的過(guò)程進(jìn)行細(xì)化的分析,有助于提升GPU的利用率和程序執(zhí)行的性能,需要的朋友可以參考下2022-01-01
python3使用urllib模塊制作網(wǎng)絡(luò)爬蟲
本文給大家介紹的是利用urllib模塊通過(guò)指定的URL抓取網(wǎng)頁(yè)內(nèi)容 所謂網(wǎng)頁(yè)抓取,就是把URL地址中指定的網(wǎng)絡(luò)資源從網(wǎng)絡(luò)流中讀取出來(lái),保存到本地,有需要的小伙伴可以參考下2016-04-04
Python如何使用Gitlab API實(shí)現(xiàn)批量的合并分支
這篇文章主要介紹了Python如何使用Gitlab API實(shí)現(xiàn)批量的合并分支,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11
Python基于回溯法子集樹(shù)模板解決全排列問(wèn)題示例
這篇文章主要介紹了Python基于回溯法子集樹(shù)模板解決全排列問(wèn)題,簡(jiǎn)單描述了全排列問(wèn)題并結(jié)合實(shí)例形式分析了Python使用回溯法子集樹(shù)模板解決全排列問(wèn)題的具體步驟與相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2017-09-09

