• 19 行代码能搭建一个女朋友?!


    点击关注上方“五分钟学算法”,

    设为“置顶或星标”,第一时间送达干货。

    转自 LeetCode力扣

    大家好,我是程序员吴师兄,五一快乐,今天帮助你通过 Python 快速搭建一个能响应指定回复的异地恋女友。

    准备工作

    准备一个微信小号

    首先你要有一个闲置的微信号,最好是绑定了银行卡,身份信息不敏感的那种,因为需要模拟网页登录。如果微信禁止了你的微信号的网页登录,那这个女朋友计划就凉凉了。

    更改备注名

    给闲置微信号起一个别开生面的备注名,比如小字辈的:小仙女、小可爱、小公主等等。

    更改头像

    找一些大家一眼就能看出来是情侣头像的头像,分别给你的两个微信号换上。准备工作大功告成。

    环境搭建

    你需要一个 Python 3+ 版本,用包管理工具或者 Docker 安装好 wxpywxpy 是一个封装好的微信个人号接口,在 itchat 的基础上,通过大量接口优化提升了模块的易用性。

    下面是官方推荐的安装方式:

    1. 从 PYPI 官方源下载安装 (在国内可能比较慢或不稳定):

    1. 从豆瓣 PYPI 镜像源下载安装 (推荐国内用户选用):

    现阶段我们只需要实现一个 rule-based 的女友,其他 NLP 或者 ML/DL 库暂时不需要。

    另外你还需要一个编辑器,这个就不多做介绍了。

    女友框架搭建

    先来搭建一个女友的框架。

    框架很好用,简单介绍一下,Bot 实例生成时的属性  cache_path = True  确保再缓存当中保持登录状态,避免重复登录,毕竟女朋友不能经常掉线嘛。

    sex 参数中,1 表示男性,2表示女性。

    装饰器 @bot.register 的作用是指明它下面的函数 reply_bf  只有在消息是 boyfriend 或者自己发来的,并且是文本类的消息时才会调用,同时允许发消息给自己,方便调试。

    msg.sender 在当前案例中会返回一个用户对象,再调用该对象的 send_msg 方法进行回复,现在我只是简单的让女朋友把我说的话重复了一遍。

    定义规则

    规则可以写成一个对象的形式,key 是规则,使用正则表达式进行模糊匹配,value 是响应内容,这部分内容可以根据自己的需求设计,以下是一个范例:

    之后更改一下回复的逻辑:

    把 except_self 改为 True ,避免回复别人消息的时候重复调用函数。在函数里遍历规则列表,匹配成功后返回指定的相应,如果全都没匹配到就返回事先定义好的一个默认回复。

    完整代码如下:

    测试

    执行这段代码,扫码登录,简单的女朋友就大功告成啦,以下是一个测试:

    这里我用了自己的微信号,找了朋友帮我测试。朋友是一个一米九的高大汉子,看着这段对话我总感觉哪里不对劲。

    算了,不管了,一个简单的女朋友已经做好了,仔细想想,自己做的女朋友又温柔又对自己口味,再搭配一个女神的照片当作头像,还找啥对象?建议广大单身的程序员同胞们都上手做一个,即便每天都刷力扣,女朋友也不会跟你分手。

    当然现在的女朋友还不够智能,下一阶段可以尝试使用 NLP 相关技巧让女朋友智能起来。


    推荐阅读

    •   60 个相见恨晚的神器工具•   一线互联网公司技术面试的流程以及注意事项•   自学编程的八大误区!克服它!•   新手如何有效的刷算法题(LeetCode)•   10款VS Code插件神器,第7款超级实用!•   在拼多多上班,是一种什么样的体验?我tm心态崩了呀!•   写给小白,从零开始拥有一个酷炫上线的网站!


    欢迎关注我的公众号“五分钟学算法”,如果喜欢,麻烦点一下“在看”~

  • 相关阅读:
    Mysql 中的MVCC原理,undo日志的依赖
    Innodb 实现高并发、redo/undo MVCC原理
    Django restful 规范
    TCP 原理
    HTTPS建立连接的过程
    HTTP协议,Http 常用状态码
    SQL注入
    Mysql 索引问题集锦
    Mysql MyISAM与InnoDB 表锁行锁以及分库分表优化
    归并排序Python 实现
  • 原文地址:https://www.cnblogs.com/csnd/p/16674846.html
Copyright © 2020-2023  润新知