广告
返回顶部
首页 > 资讯 > 后端开发 > Python >人机交互程序 python实现人机对话
  • 840
分享到

人机交互程序 python实现人机对话

人机程序python 2022-06-04 19:06:55 840人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

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

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


# 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() 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: 人机交互程序 python实现人机对话

本文链接: https://www.lsjlt.com/news/16076.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 人机交互程序 python实现人机对话
    自己随便写了一个人机交互的程序。不存在任何智能,只是可以识别姓名,可以记录对话内容,并保存等到下一次交互时加载。 (推荐面向对象版本) # hello.py # 这是老早写的。不过今天加入了Pickl...
    99+
    2022-06-04
    人机 程序 python
  • AI人工智能 Python实现人机对话
    在人工智能进展的如火如荼的今天,我们如果不尝试去接触新鲜事物,马上就要被世界淘汰啦~ 本文拟使用Python开发语言实现类似于WIndows平台的“小娜”,或者是IOS下的“Siri”。最终达到人机对话的效...
    99+
    2022-06-04
    人工智能 人机 AI
  • Python人工智能实战之对话机器人的实现
    目录背景用到的技术主要流程代码模块Joke对象爬虫抓取笑话代码实现保存到sqlite数据库抓取笑话并保存到数据库背景 当我慢慢的开在高速公路上,宽敞的马路非常的拥挤!这时候我喜欢让...
    99+
    2022-11-13
  • Python实现五子棋人机对战 和人人对战
    目录人人对战动态演示源码分享人人对战.py人机对战动态演示前言: 过完520,咱们来玩玩五子棋陶冶情操。快拿这个和你女朋友去对线。多的不说直接进入正题 人人对战 游戏规则:p1为黑子...
    99+
    2022-11-11
  • Python如何实现五子棋人机对战和人人对战
    这篇文章主要介绍“Python如何实现五子棋人机对战和人人对战”,在日常操作中,相信很多人在Python如何实现五子棋人机对战和人人对战问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python如何实现五子棋...
    99+
    2023-06-30
  • Python基于Google Bard实现交互式聊天机器人
    目录用Python基于Google Bard做一个交互式的聊天机器人获取Session IDPython代码运行与尝试代码用Python基于Google Bard做一个交互式的聊天机...
    99+
    2023-03-24
    Python Google Bard聊天机器人 Python Bard交互式聊天
  • Python基于Google Bard怎么实现交互式聊天机器人
    这篇文章主要介绍“Python基于Google Bard怎么实现交互式聊天机器人”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python基于Google Bard怎么实现交互式...
    99+
    2023-07-05
  • Java实现模拟机器人对话的示例代码
    目录前言一、Java多线程的介绍 二、创建线程并运行三、多线程间的交互前言 今天带大家来体验一下Java多线程,首先我们要明白什么是线程?什么是多线程? 进程是指一个内存中...
    99+
    2022-11-13
  • react版模拟亚马逊人机交互菜单的实现
    目录前言需求介绍实现方案实现需求3部分逻辑代码实现效果前言 前段时间接了一个需求,实现一个模仿亚马逊和京东的菜单交互效果,这种效果被称为模拟人机交互。在网上搜了一下,目前没有见到有 ...
    99+
    2022-11-13
  • 基于Python实现五子棋-(人机对战)
    目录前言人人对战动态演示源码分享人机对战前言 快520了,咱们来玩玩五子棋陶冶情操。快拿这个和你女朋友去对线。(分了别来找我哇)。多的不说直接进入正题 人人对战 游戏规则:p1为黑子...
    99+
    2022-11-11
  • 如何实现react版模拟亚马逊人机交互菜单
    小编给大家分享一下如何实现react版模拟亚马逊人机交互菜单,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!需求介绍本文都是在web端的需求参考亚马逊和京东商城的首页左侧菜单效果,实现一个react版本的组件,以供业务使用。...
    99+
    2023-06-29
  • python实现人机对战的五子棋游戏
    本文实例为大家分享了python实现五子棋游戏的具体代码,供大家参考,具体内容如下 checkerboard.py from collections import namedtupl...
    99+
    2022-11-10
  • python实现人机对战的井字棋游戏
    本文实例为大家分享了python实现人机对战井字棋的具体代码,供大家参考,具体内容如下 游戏简介:在九宫格内进行,如果一方抢先于另一方向(横、竖、斜)连成3子,则获得胜利。游戏中输入...
    99+
    2022-11-10
  • Python 实现驱动AI机器人
    1.如果尚未启动WSL-ROS环境,请运行Windows“开始”菜单中的WSL-ROS快捷方式。这将打开一个终端应用程序和一个Ubuntu终端实例。我们将这个...
    99+
    2022-11-13
  • 小程序多人视频通话怎么实现
    本篇内容主要讲解“小程序多人视频通话怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“小程序多人视频通话怎么实现”吧!功能体验在微信小程序中搜索腾讯视频云可以加载到我们的演示用小程序,其中多...
    99+
    2023-06-26
  • Java实现人机对战猜拳游戏
    本文实例为大家分享了Java实现人机对战猜拳游戏的具体代码,供大家参考,具体内容如下 通过控制台方式实现一个人机对战的猜拳游戏 1.用户通过输入(2.剪刀 0.石头 5.布) 2...
    99+
    2022-11-12
  • 案例:python实现聊天机器人
    import pickle data = {"你有女朋友吗":"没有","我们可以交往吗":"可以","今晚约不约":"约","去哪家餐厅":"麦当劳"} with open("db.pkl",'wb') as f: f.wr...
    99+
    2023-01-31
    机器人 案例 python
  • python实现AI聊天机器人详解流程
    前言 开始几天,我是使用很原始的方法,自己去获取天气预报截图,再手动发送给小姐姐。连续几天之后我一想:不对呀,我怎么说也是一个程序猿,怎么能用这么 low 的方式呢。 联想起之前看到...
    99+
    2022-11-12
  • robotstudio机器人编程如何实现
    RobotStudio是ABB公司开发的一个虚拟机器人编程和仿真软件,可以在计算机上模拟机器人的运动和工作环境。下面是RobotSt...
    99+
    2023-09-22
    robotstudio
  • 接入支付宝小程序能力,人人租机实现从 0-100 增长
    人人租机是国内知名,为企业和个人提供信用免押租赁的全品类新租赁平台,也是在全国首个推出“新租赁小程序“开发服务的阿里小程序服务商(ISV)。18年11月获蚂蚁金服A轮融资,19年3月成为支付宝小程序服务商...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作