前言:
1、目前新注册的微信号不能上网页版微信了,而itchat等目前主流微信api接口都是用的网页微信,所以我只能用老号登陆,可是腾讯以后肯定会逐步关闭网页版(老号以后可能也不能用了),所以还是期望有大神能开发出pc版微信的api
2、我翻了网上很多的攻略,绝大部分都正确,但是实际使用却有问题,可能是itchat的版本更新所致,现在这个是我看了itchat的py文档补充写的,所以亲测可用
3、四则运算写了一个简单的,只能+ - * /,而且如果是4*5 + 20之类的,会误算成25,以后再修正吧
4、其实机器人如果用好的话,完全可以顶一个甚至多个人力,比如群里报数据,根据标准格式进行汇总统计并督促,不过因为1的原因,实际使用上有被封号的风险

效果图:

#coding=utf8
import itchat
from itchat.content import *
import re# 在注册时增加isGroupChat=True将判定为群聊回复
@itchat.msg_register(TEXT, isGroupChat = True)
def groupchat_reply(msg):'''msg['Content'],信息内容msg['FromUserName'],信息的发送方ID,如果是群信息的话就是群ID,是一长串数字,没有msg['NickName'],所以要用chatroom_dict()进行转化msg['ActualNickName'],信息发送者的昵称,注意如果是群里的话就是群里信息的实际发送者'''d = chatroom_dict()chatroom_id = msg['FromUserName']chatroom_name = d[chatroom_id]try:if chatroom_name == '软件测试': #这里指定了群text = msg['Content']if re.search('.*?\d+.*', text):answer = cal(text)itchat.send('答案是:{}'.format(answer), toUserName=chatroom_id)else:QA_len = len(content_dict)n = 0for key, value in content_dict.items():if key in msg['Content']:itchat.send(value, toUserName=chatroom_id)breakelse:n += 1if n == QA_len:itchat.send('我还不知道呀, 等我长大一点再回答你哦!', toUserName=chatroom_id)get_new_question(msg['Content'])else: continueelse:passexcept:passdef chatroom_dict():'''获得群的ID和群名称,并组合成字典'''d = {}chatrooms = itchat.get_chatrooms(update=True)for chatroom in chatrooms:d[chatroom['UserName']] = chatroom['NickName']return ddef get_new_question(content):'''把不在库里面的新问题保存到本地文件夹里'''with open('new_question.txt', 'a', encoding='utf-8') as file:file.write(content)file.write('\r\n')def cal(text):'''简单的四则运算'''if re.search('\D*(\d+\+\d+)\D*', text):question = re.search('\D*(\d+\+\d+)\D*', text).group(1)f_num, s_num = question.split('+')answer = int(f_num) + int(s_num)return answerelif re.search('\D*(\d+-\d+)\D*', text):question = re.search('\D*(\d+-\d+)\D*', text).group(1)f_num, s_num = question.split('-')answer = int(f_num) - int(s_num)return answerelif re.search('\D*(\d+\*\d+)\D*', text):question = re.search('\D*(\d+\*\d+)\D*', text).group(1)f_num, s_num = question.split('*')answer = int(f_num) * int(s_num)return answerelif re.search('\D*(\d+/\d+)\D*', text):question = re.search('\D*(\d+/\d+)\D*', text).group(1)f_num, s_num = question.split('/')answer = int(f_num) / int(s_num)return answerelse:return "太难了,我不会啊!"content_dict = {'你好': '你好','叫什么': '我叫图图','名字': '我叫图图','性别': '男孩子','几岁': '我今年3岁啦','算数': '会一点点','考': '放马过来!','聪明': '谢谢!','唱歌': '暂时还不会,以后会加强!','最爱': '肉肉!',
}itchat.auto_login(True)
itchat.run()

Python:根据itchat编了一个3岁智商的机器人相关推荐

  1. python好学吗 老程序员-今天面试了一个34岁大龄程序员,有感而发

    原标题:今天面试了一个34岁大龄程序员,有感而发 " 昨天,我面试了一个34岁的大龄程序员--我给人事的建议是P4,结果人事说:那直接让他走吧. " 我一直以为他们在开玩笑! 结果 ...

  2. 用Python编了一个鱿鱼游戏

    用Python编了一个鱿鱼游戏 关键词:python, pygame, squid game, 鱿鱼游戏 python 源代码下载:点击下载squidgame1.zip文件 python 开源项目地址 ...

  3. python自学多久可以找到工作-25岁从零开始学习python还能找到工作吗?

    相信近期大家经常可以看到培训机构推出python相关的课程,随着人工智能技术逐渐进入大众的生活,这种编程语言以简单.应用广泛的优势,成为了进入人工智能领域的条件之一.对于精通python开发的人,在职 ...

  4. itchat和php,Python使用itchat 功能分析微信好友性别和位置

    这样就将你所有微信好友的信息都返回了,我们并不需要这么多的信息,我们选取一些信息存储到 csv 文件中 注意:返回的信息是一个 list,其中第一个是我自己的信息,所以要从第二项开始 存储的文件 2: ...

  5. python flask高级编程之restful_('Python Flask高级编程之RESTFul API前后端分离精讲',),全套视频教程学习资料通过百度云网盘下载...

    资源详情 r n t某课网好评度100%的Python Flask高级编程之RESTFul API前后端分离精讲 r n t t t第1章 随便聊聊 r n t t t聊聊Flask与Django,聊 ...

  6. 用php写一个可以抽取随机数的工具一次只抽四个怎么实现?_面试了一个32岁的程序员,场面一度很尴尬。...

    招人背景 首先说一下朋友的公司招人背景,公司招聘PHP高级岗位,负责公司的B2B项目研发.并发问题的处理和解决.领导给了他两个要求:(接下来的讲述我会以朋友的第一人称来进行) (1)技术比较好 (2) ...

  7. python一个函数调用另一个函数_在Python中将函数作为另一个函数的参数传入并调用的方法...

    在Python中,函数本身也是对象,所以可以将函数作为参数传入另一函数并进行调用 在旧版本中,可以使用apply(function, *args, **kwargs)进行调用,但是在新版本中已经移除, ...

  8. 面试了一个 39 岁程序员,全程让我都感觉有点慌.....

    招人背景 首先说下公司招人的背景吧,公司要招的是一个研发经理的岗位,负责管理技术团队的各个项目组,领导只给了我两个要求: 1)技术可以 2)管理有一套 说白了,这是一个技术+管理的岗位,不是纯粹的管理 ...

  9. python itchat库_用python【itchat】库获取群聊信息的正确姿势

    我在<昆明单车骑行群体分析报告(2019版)>中曾用python的itchat模块抓取了我加入的昆明单车群信息,并做了简要分析. 在持续十来天抓取群数据的时候,我发现一个奇怪现象,就是有一 ...

最新文章

  1. linux 线程库在哪里,linux线程库
  2. 最新(2019/3)CSDN博客Markdown编辑格式说明,包含效果图
  3. day3_python学习笔记_chapter5_数字
  4. NHibernate重要概念的解释和说明
  5. 【django】创建django项目工程
  6. java并发编程与线程安全
  7. 慕课网Spark SQL日志分析 - 4.从Hive平滑过渡到Spark SQL
  8. 【匈牙利算法】【二分图匹配】【转载】趣写算法系列之--匈牙利算法
  9. Struts tiles入门(最最简单的例子)
  10. strtotime的几种用法区别
  11. Linq 使用skip和take分页
  12. NVIDIA DGX低至7.5折限时抢购,全球首款深度学习超级计算机组合
  13. [JSOI2010] 连通数
  14. Dell Optiplex主流台式机驱动安装指南
  15. 【转载】Attention Mechanism in Deep Learning
  16. 计算机专业c语言挂科怎么办,大学最容易挂科的“学科排行榜”出炉,补考难度很高,你挂了吗?...
  17. 2022临床助理医师考试专业知识模拟题
  18. 基于LVD、贝叶斯模型算法实现的电商行业商品评论与情感分析案例
  19. Franka Emika Panda连接真实机械臂(一)
  20. [R语言]{实例}车辆车架号VIN码校验函数

热门文章

  1. 策略模式(用策略模式实现我们淘宝,京东,美团等等简易满减活动)
  2. 有道获取单词读音api
  3. python中int函数_int()函数以及Python中的示例
  4. android中接口的作用是什么意思,详解Android接口Interface的使用和意义
  5. 博主眼中的SEM竞价推广
  6. 你口口声声想要的自由
  7. springboot 第十九节 starter and muti_datasource 多数据源
  8. 2022-2028年中国燃气轮机行业市场专项调研及投资前景研究报告
  9. 牛客网练习—《网络基础》DAY2
  10. 软件构件技术期末复习