dict = {
  'hello': 'hello'
}
flag = 'c'
work = True
print 'hi,my name is python.'
print 'do you want chat with me?'
while flag == 'c' or 't':
  flag = raw_input("你可以选择和我聊天(c)和我训练对话(t),或者让我离开(l)?(c/t/l)")
  if flag == "t":
    question = raw_input("请输入问题(key): ")
    answer = raw_input("请输入你的答案(value):")
    dict[str(question)] = str(answer)
    print u"训练成功"
    print u"现在我已经会%d个问题了!" % len(dict)
    continue
  elif flag == 'c':
    if len(dict) == 0:
      print u"我现在还不会问题,请先训练我!"
      continue
    chat_word = raw_input("谢谢你和我聊天,你想对我说点什么?:")
    for key in sorted(dict.keys()):
      if str(chat_word) == key:
        work = True
        print dict[key]
        break
      else:
        work = False
    if work == False:
      print u"抱歉,这句话我还不会回答"
      work = True
   elif flag == 'l':
     print u'好的,下次再见'
     break
   else:
    print u'请输入提示的指令'
    continue

(Python2)自动对话机器人 代码的更多相关文章

  1. 树莓派打造对话机器人 Python(转)

    工具列表 1. **树莓派**(型号不要求,本人使用的是3B) 2. **usb麦克风**(某宝有卖,我就不打广告了) 用来录音 3. **音响或者喇叭**(某宝也有卖) 用来播放 以上就是需要的工具 ...

  2. 打造一个window桌面应用:在线聊天对话机器人

    大家好,我是辰哥~~~ 本文目标:打造一个window桌面应用:在线聊天对话机器人. 今天辰哥教大家做一个在线聊天对话机器人桌面应用,已经打包成exe可执行文件,读者可以直接拿来使用, 先上演示图 聊 ...

  3. [Dynamic Language] 用Sphinx自动生成python代码注释文档

    用Sphinx自动生成python代码注释文档 pip install -U sphinx 安装好了之后,对Python代码的文档,一般使用sphinx-apidoc来自动生成:查看帮助mac-abe ...

  4. JS倒计时网页自动跳转代码

    <title>JS倒计时网页自动跳转代码</title> <script language="JavaScript" type="text/ ...

  5. inno安装卸载时检测程序是否正在运行卸载完成后自动打开网页-代码无效

    inno安装卸载时检测程序是否正在运行卸载完成后自动打开网页-代码无效 inno setup 安装卸载时检测程序是佛正在运行卸载完成后自动打开网页-代码无效 --------------------- ...

  6. Linux oracle数据库自动备份自动压缩脚本代码

    Linux oracle数据库备份完成后可以自动压缩脚本代码. 复制代码代码如下: #!/bin/bash #backup.sh #edit: www.jbxue.com ##系统名称 sysname ...

  7. wsdl自动生成Java代码,根据wsdl生成Java代码

    wsdl自动生成Java代码,根据wsdl生成Java代码 >>>>>>>>>>>>>>>>>&g ...

  8. Eclipse没法自动补全代码解决

    Eclipse没法自动补全代码解决   Eclipse无法自动补全代码解决 Window->Java->Editor->Content Assist->Advanced

  9. 可以放在html代码中的自动跳转代码

    可以放在html代码中的自动跳转代码 有3种方法可以实现html的页面跳转,1,refresh   2,onload事件中加入代码  3,js实现 1.<html><body> ...

随机推荐

  1. Java基础系列--05_面向对象

    1.概述: (1)面向过程:将问题一步一步的解决的过程(详细步骤),在C语言中所有的代码都是基于过程化的代码. (2)面向对象:面向对象是基于面向过程的编程思想,所有的事情都交由创建出来的对象去指挥. ...

  2. 搭建Hadoop的环境

    准备实验的环境: 1.安装Linux.JDK 2.配置主机名.免密码登录 3.约定:安装目录:/usr/local/bin 安装: 1.解压 : tar -zxvf hadoop-2.7.7.tar. ...

  3. 关于配置ssh免密码登录后,仍提示输入密码

    一.在A端创建密钥对: [root@A ~] -P '' 二.如果B机器没有.ssh和authorized_keys文件则创建这个文件夹和文件先,创建后要chown改成当前用户的所属者,其次也要改: ...

  4. java中的线程池原理

    写的不错,https://www.cnblogs.com/dongguacai/p/6030187.html

  5. 软工+C(9): 助教指南,持续更新...

    上一篇:提问与回复 下一篇:从命令行开始逐步培养编程能力(Java) 目录: ** 0x00 Handshake ** 0x01 点评 ** 0x02 评分 ** 0x03 知识储备 ** 0x04 ...

  6. windows系统下的特殊目录导致的FileNotFoundException

    环境:下面只有JDK(内含jre),没有外在的jre 读取的两个文件都是存在的,只是文件名不同 运行结果1 运行结果2 切换JDK 运行结果3: 运行结果4: 请留意:C:\windows\syste ...

  7. 结构体中.和->两种访问区别

    定义结构体指针,访问成员时就用->定义结构体变量,访问成员时就用. 例如:struct A { int a; char b;}; struct A q; 访问成员就用:q.a;struct A ...

  8. codeforces8A

    Train and Peter CodeForces - 8A Peter likes to travel by train. He likes it so much that on the trai ...

  9. DS博客作业02--线性表

    1.本周学习总结 1.1思维导图 1.2.谈谈你对线性表的认识及学习体会 这阶段学习学的是线性表,学习线性表的两种存储顺序-----链表和顺序表,体会了两者存储结构之间的区别,通过对顺序表,单链表,双 ...

  10. loj121-动态图连通性

    Solution 线段树分治, 然后直接在线段树上dfs, 在进入/回溯的过程中维护并查集的merge/split. 对于split操作, 可以在merge时按秩合并, 然后利用栈记录, split时 ...