python人机对话_人机交互程序 python实现人机对话
人机交互程序 python实现人机对话
来源:中文源码网 浏览: 次 日期:2018年9月2日
【下载文档: 人机交互程序 python实现人机对话.txt 】
(友情提示:右键点上行txt文档名->目标另存为)
人机交互程序 python实现人机对话 自己随便写了一个人机交互的程序。不存在任何智能,只是可以识别姓名,可以记录对话内容,并保存等到下一次交互时加载。 (推荐面向对象版本)
# hello.py
# 这是老早写的。不过今天加入了Pickle,然后润色了一下。
# 可能有点无聊(不推荐使用)
import pickle
import os.path
def search(x, data):
for k, d in enumerate(data):
if x == d['name']:
return k, d
def save_data(A,pklname):
with open(pklname, 'wb') as pkl:
pickle.dump(A, pkl)
def load_data(pklname):
with open(pklname, 'rb') as pkl:
return pickle.load(pkl)
# communicating with computer
data=[] if not os.path.isfile('data') else load_data('data')
while True:
print('Welcome! [type "quit" if you want to quit.]')
name=input('--What is your name?\n--')
if name in {'quit','Quit','q','Q'}:
print('[You quit]')
break
if not search(name, data):
print('--Welcome, '+name+ '. I will remember you name.')
d={'name':name,'age':0,'history':[]}
data.append(d)
else:
print('--Hi, '+name+'. How I miss you.')
k, d=search(name, data)
while d['age']==0:
age=input('--How old are you?[I will repeat until you respond!]')
try:
if int(age)==0: continue
d['age']=int(age); data[k]=d
except:
pass
while True:
y=input('--Chan I help you? [yes/no]')
while not y:
y=input('--Yes or no?')
d['history'].append(y); data[k]=d
if y in {'no','No','n','N'}:
print('--%s.'%y)
print('--Bye bye.')
break
elif y in {'yes','Yes','y','Y'}:
print('--%s.'%y)
print('I am pleased to serve you.')
else:
print('I am sorry. I can not understand what you said.')
break
# save data
y=input('--Do you want to save the data? [yes/no]')
while not y:
y=input('--Yes or no?')
if y in {'no','No','n','N'}:
print('--%s. [You say no.]'%y)
elif y in {'yes','Yes','y','Y'}:
print('--%s. [the data is saved in file named "data".]'%y)
save_data(data, 'data')
else:
print('I am sorry. I can not understand what you said. data are not saved.') 下面是hello.py的面向对象编程版本(推荐)# hello.py
import pickle
import os.path
def search(x, data):
for k, d in enumerate(data):
if x == d['name']:
return k, d
class Hello:
def __init__(self, name='', data=None):
self.name = name
self.data = data
def __getstate__(self):
return self.data
def __setstate__(self, data):
self.data = data
def mainloop(self):
while True:
print('Welcome! [type "quit" if you want to quit.]')
name=input('--What is your name?\n--')
if name in {'quit','Quit','q','Q'}:
print('[You quit]')
break
if not search(name, self.data):
print('--Welcome, '+name+ '. I will remember you name.')
d={'name':name,'age':0,'history':[]}
self.data.append(d)
else:
print('--Hi, '+name+'. How I miss you.')
k, d=search(name, self.data)
while d['age']==0:
age=input('--How old are you?[I will repeat until you respond!]')
try:
if int(age)==0: continue
d['age']=int(age); self.data[k]=d
except:
pass
while True:
y=input('--Chan I help you? [yes/no]')
while not y:
y=input('--Yes or no?')
d['history'].append(y); self.data[k]=d
if y in {'no','No','n','N'}:
print('--%s.'%y)
print('--Bye bye.')
break
elif y in {'yes','Yes','y','Y'}:
print('--%s.'%y)
print('I am pleased to serve you.')
else:
print('I am sorry. I can not understand what you said.')
break
# save data
y=input('--Do you want to save the data? [yes/no]')
while not y:
y=input('--Yes or no?')
if y in {'no','No','n','N'}:
print('--%s. [You say no.]'%y)
elif y in {'yes','Yes','y','Y'}:
print('--%s. [the data is saved in file named "data.pkl".]'%y)
with open('data.pkl', 'wb') as fo:
pickle.dump(self, fo)
else:
print('I am sorry. I can not understand what you said. data are not saved.')
# communicating with computer
try:
with open('data.pkl', 'rb') as fo:
hello=pickle.load(fo)
except:
hello=Hello('ai',[])
hello.mainloop() 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持中文源码网。
亲,试试微信扫码分享本页! *^_^*
python人机对话_人机交互程序 python实现人机对话相关推荐
- python人机交互_人机交互程序 python实现人机对话
自己随便写了一个人机交互的程序.不存在任何智能,只是可以识别姓名,可以记录对话内容,并保存等到下一次交互时加载. (推荐面向对象版本) # hello.py # 这是老早写的.不过今天加入了Pickl ...
- python能做人机界面吗_人机交互程序 python实现人机对话
自己随便写了一个人机交互的程序.不存在任何智能,只是可以识别姓名,可以记录对话内容,并保存等到下一次交互时加载. (推荐面向对象版本) # hello.py # 这是老早写的.不过今天加入了Pickl ...
- python人机对话性别年龄名字_人机交互程序 python实现人机对话
自己随便写了一个人机交互的程序.不存在任何智能,只是可以识别姓名,可以记录对话内容,并保存等到下一次交互时加载. (推荐面向对象版本) # hello.py # 这是老早写的.不过今天加入了Pickl ...
- Php扫码签到功能怎么实现,python扫码签到程序python中如何定义类
什么是类? 用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例. 什么是方法? 类中的函数即为方法 如何定义一个类? 定义类,语法格式如下: < ...
- python开发windows桌面程序,python开发windows桌面应用
为什么用Python开发桌面应用程序 1)wxWidgets是一个比MFC优雅的库,TortoiseCVS用wxWidges而不用MFC,就是因为wxWidgets好用,而不是为了可以移植. 2)Py ...
- python 购物车程序_购物车程序python
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 第3点要求: 用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒在循环外层 ...
- python书籍_最好的Python书籍,让您像专业程序员一样编程
Python是一种值得学习的语言.学习Python不仅会激发你用最简单的方式完成高度复杂的任务,还会打破传统编程范型的藩篱.Python是能够改变你的编程方式进而改变你看问题的角度的一种语言. Pyt ...
- 有趣的超短python代码_有趣的python精短程序
python可以简单优美,也很有趣,下面是收集的例子: 1.一句话开始一个http的文件服务器: $ python -m SimpleHTTPServer Serving HTTP on 0.0.0. ...
- 学习python课程_想学习Python吗? 这是我们的免费4小时互动课程
学习python课程 Python is a popular, versatile and easy-to-learn language. It's the go-to language for AI ...
最新文章
- 美多商城之验证码(短信验证码2)
- vivado----fpga硬件调试 (六)----数据导出
- 渗透测试中的文件传输技巧
- 【翻译】25个浏览器开发工具的秘密
- JSON,数组根据字段分组
- [转]深夜无人的街道
- Java后台开发Tomcat添加https支持小程序开发过程
- LDAP 中关于CN,OU,DC的含义
- linux 卸载sphinx,sphinx管理脚本,实现sphinx启动、关闭、重启、生成索引功能 | linux运维小站–linux系统架构_服务器运维_Linux运维工程师工作手札...
- 余承东亲曝P40相机成本,比骁龙865还贵,涨价原因找到了!
- Linux下的截图工具:flameshot
- 阵列卡不能格式化磁盘问题所在
- 可变长参数以及面试题
- MongoDB-Getting Started with the C# Driver
- js 递归树结构数组
- Docker下载与安装(2020)
- Vue之生命周期mounted、activated区别及实际运用例子解析
- [转]华为应对新劳动合同法 万名员工将自选去留[http://news.qq.com/a/20071027/002388.htm 21世纪经济报道]
- ajax打开新窗口被浏览器拦截的解决办法
- JDBC如何有效防止SQL注入
热门文章
- 微信小程序进入某一页面自动播放背景音乐
- php sql datediff,PHP_模拟SQLSERVER的两个函数:dateadd(),datediff(),?php//文件名:date.inc.php3//在 - phpStudy...
- 推荐系统 (三): 浪潮之巅 -- 深度学习在推荐系统中的应用
- 区分曼彻斯特和差分曼彻斯特编码
- 想转行当程序员的必看!2021年Android春招面试经历,威力加强版
- Unity3D开发之遇上Dropdown
- MixMatch:半监督学习
- PageRank算法及Python实现
- C#Marshal.AllocHGlobal与Marshal.FreeHGlobal
- uwb高精度定位技术应用分析,高精度定位服务为行业应用带来哪些价值?