人机交互程序 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实现人机对话相关推荐

  1. python人机交互_人机交互程序 python实现人机对话

    自己随便写了一个人机交互的程序.不存在任何智能,只是可以识别姓名,可以记录对话内容,并保存等到下一次交互时加载. (推荐面向对象版本) # hello.py # 这是老早写的.不过今天加入了Pickl ...

  2. python能做人机界面吗_人机交互程序 python实现人机对话

    自己随便写了一个人机交互的程序.不存在任何智能,只是可以识别姓名,可以记录对话内容,并保存等到下一次交互时加载. (推荐面向对象版本) # hello.py # 这是老早写的.不过今天加入了Pickl ...

  3. python人机对话性别年龄名字_人机交互程序 python实现人机对话

    自己随便写了一个人机交互的程序.不存在任何智能,只是可以识别姓名,可以记录对话内容,并保存等到下一次交互时加载. (推荐面向对象版本) # hello.py # 这是老早写的.不过今天加入了Pickl ...

  4. Php扫码签到功能怎么实现,python扫码签到程序python中如何定义类

    什么是类? 用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例. 什么是方法? 类中的函数即为方法 如何定义一个类? 定义类,语法格式如下: < ...

  5. python开发windows桌面程序,python开发windows桌面应用

    为什么用Python开发桌面应用程序 1)wxWidgets是一个比MFC优雅的库,TortoiseCVS用wxWidges而不用MFC,就是因为wxWidgets好用,而不是为了可以移植. 2)Py ...

  6. python 购物车程序_购物车程序python

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 第3点要求: 用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒在循环外层 ...

  7. python书籍_最好的Python书籍,让您像专业程序员一样编程

    Python是一种值得学习的语言.学习Python不仅会激发你用最简单的方式完成高度复杂的任务,还会打破传统编程范型的藩篱.Python是能够改变你的编程方式进而改变你看问题的角度的一种语言. Pyt ...

  8. 有趣的超短python代码_有趣的python精短程序

    python可以简单优美,也很有趣,下面是收集的例子: 1.一句话开始一个http的文件服务器: $ python -m SimpleHTTPServer Serving HTTP on 0.0.0. ...

  9. 学习python课程_想学习Python吗? 这是我们的免费4小时互动课程

    学习python课程 Python is a popular, versatile and easy-to-learn language. It's the go-to language for AI ...

最新文章

  1. 美多商城之验证码(短信验证码2)
  2. vivado----fpga硬件调试 (六)----数据导出
  3. 渗透测试中的文件传输技巧
  4. 【翻译】25个浏览器开发工具的秘密
  5. JSON,数组根据字段分组
  6. [转]深夜无人的街道
  7. Java后台开发Tomcat添加https支持小程序开发过程
  8. LDAP 中关于CN,OU,DC的含义
  9. linux 卸载sphinx,sphinx管理脚本,实现sphinx启动、关闭、重启、生成索引功能 | linux运维小站–linux系统架构_服务器运维_Linux运维工程师工作手札...
  10. 余承东亲曝P40相机成本,比骁龙865还贵,涨价原因找到了!
  11. Linux下的截图工具:flameshot
  12. 阵列卡不能格式化磁盘问题所在
  13. 可变长参数以及面试题
  14. MongoDB-Getting Started with the C# Driver
  15. js 递归树结构数组
  16. Docker下载与安装(2020)
  17. Vue之生命周期mounted、activated区别及实际运用例子解析
  18. [转]华为应对新劳动合同法 万名员工将自选去留[http://news.qq.com/a/20071027/002388.htm  21世纪经济报道]
  19. ajax打开新窗口被浏览器拦截的解决办法
  20. JDBC如何有效防止SQL注入

热门文章

  1. 微信小程序进入某一页面自动播放背景音乐
  2. php sql datediff,PHP_模拟SQLSERVER的两个函数:dateadd(),datediff(),?php//文件名:date.inc.php3//在 - phpStudy...
  3. 推荐系统 (三): 浪潮之巅 -- 深度学习在推荐系统中的应用
  4. 区分曼彻斯特和差分曼彻斯特编码
  5. 想转行当程序员的必看!2021年Android春招面试经历,威力加强版
  6. Unity3D开发之遇上Dropdown
  7. MixMatch:半监督学习
  8. PageRank算法及Python实现
  9. C#Marshal.AllocHGlobal与Marshal.FreeHGlobal
  10. uwb高精度定位技术应用分析,高精度定位服务为行业应用带来哪些价值?