龙空技术网

教你一招,用Python把女朋友哄开心

程序员牧童 129

前言:

眼前兄弟们对“python程序的入口函数”都比较关怀,朋友们都想要剖析一些“python程序的入口函数”的相关知识。那么小编同时在网络上网罗了一些有关“python程序的入口函数””的相关内容,希望你们能喜欢,朋友们快快来学习一下吧!

昨天,和一位朋友聊天,他说最近准备学习 Python 这门编程语言,让我学完 Python 能做哪些事情。

正好,最近他女朋友有点闷闷不乐,他也寻思着给她找点乐子,开心一下。我随口说了句,可以用 Python 哄女朋友呀。

没想到他竟当真了,说完就立马要我实现,今天给大家分享如何使用 Python 哄女朋友。

1. 功能简介

使用 Python 给女朋友发送随机笑话,博得美人一笑。

主要分为两部分功能,一是获取随机笑话,二是将获取的随机笑话发送给女朋友。

使用第三方库 requests 发送 HTTP 请求获取随机笑话,使用第三方库 wxpy 完成微信登录、微信好友列表获取、以及发送微信消息等操作。

以上两个库的安装,可直接使用以下命令:

pip install requests

pip install wxpy

2. 功能实现

2.1 获取随机笑话函数封装

使用 requests 模块发送 HTTP GET 请求,对返回数据进行解析,获取随机笑话内容,并作为函数的返回值返回。

import requestsdef get_joke() -> str:    """获取随机笑话"""    # 1. 随机笑话获取接口 URL    url = ";    # 2. 获取返回数据    joke_data = requests.get(url)    # 3. 解析数据并返回    return joke_data.text        if __name__ == '__main__':    print(get_joke())

调用函数测试,输出结果如下:

老婆趁我午睡,偷偷地到我钱包里拿钱,于是我质问她:“我每月就只有这么点零花钱,你还拿我的,有没有考虑过我的感受?”

老婆:“考虑过啊,所以我到你那拿钱的时候才会轻手轻脚的,怕吵醒你了。”

一时间我竟然有些感动。。。

2.2 网页版微信登录功能实现

wxpy 库中的 bot.py 模块中,封装了一个 Bot 类,我们称之为 机器人对象,主要用于登陆与操作微信,涵盖了大部分网页版微信的功能。

使用以下代码即可完成机器人对象初始化与登录功能:

import wxpy# 网页版微信登陆bot = wxpy.Bot()

执行代码后,会弹出二维码信息,使用微信扫码即可登录。

2.3 发送微信消息函数封装

调用机器人对象 botfriends 方法获取微信好友列表, 使用 search 方法搜索指定微信昵称的好友,如你女朋友的微信昵称,并获取数据的第一个对象,调用获取对象的 send 方法发送微信消息。

import wxpy# 网页版微信登陆bot = wxpy.Bot()def send_msg():    """发送消息给女朋友"""    try:        # 通过微信昵称获取女朋友备注信息        friend = bot.friends().search(u'女朋友的昵称')[0]        # 调用 send 方法发送微信消息        # 发送获取的随机笑话        friend.send(get_joke())    except:        pass

2.4 功能测试

1、执行代码,扫码登录微信。

...# 以上代码略if __name__ == '__main__':    send_msg()

2、微信消息发送成功,效果如下图:

3. 功能优化

不难发现,上面的功能存在一些不足,我们每次只能发送一条消息,而且每次发送都得重新运行一下代码,这显然不符合我这位朋友的需求。

现在,我们优化一下代码,保证代码只需要运行一次,还能定时发送消息,并且在随机笑话前面添加自己想要的内容 - “女神,开心一刻:”。

3.1 入口函数封装

我们将所有的业务逻辑全部封装至 main 函数中,便于后续优化、升级,选用 time 模块实现定时功能。

...# 以上代码略import timedef main():    """定时发送消息"""    while True:        send_msg()        # 这里设置间隔时间,单位为秒        time.sleep(10)if __name__ == '__main__':    main()

这里的时间可根据自身情况设置,这位朋友的需求是一个小时发一次,为了便于测试,我们暂时设置为 10 秒一次。

3.2 发送消息函数调整

调整 send_msg 函数中的业务逻辑,在发送的消息前面加上所需的文本内容。

...# 以上代码略def send_msg():    """发送消息给女朋友"""    try:        # 通过微信昵称获取女朋友备注信息        friend = bot.friends().search(u'女朋友的昵称')[0]        print(get_joke())        # 调用 send 方法发送微信消息        friend.send("女神,开心一刻:\n{}".format(get_joke()))    except:        pass

3.3 优化后的功能效果

执行代码,扫码登录即可成功定时发送消息了,接下来,我们看看效果吧。

4. 补充

打开 bot.py 模块的源码可以发现,里面还封装了很多与微信操作相关的方法,有兴趣的朋友可以去了解一下。

下面介绍几个常用的方法:

friends:获取所有微信好友

groups:获取所有微信群聊对象

mps:获取所有公众号

user_details:获取单个或多个用户的详细信息

add_friend:添加指定用户为好友

其实,初始化机器人对象时,也可以传递参数,下面介绍几个常用的参数:

cache_path:当前会话的缓存路径,并开启缓存功能,默认不开启

console_qr:在终端中显示登陆二维码,需要安装 pillow 模块,也可为整数,表示二维码单元格的宽度

qr_path:保存二维码的路径

5.总结

1、Python 能带给我们很多惊喜,增添生活乐趣,提升学习、工作效率等等。

2、案例中发送的是随机笑话,大家可以根据自身需求,如发送天气预报、新闻、或者其他感兴趣的内容等等。

感谢阅读!!!

多说一句,很多人学Python过程中会遇到各种烦恼问题,没有人解答容易放弃。小编是一名python开发工程师,这里有我自己整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。想要这些资料的可以关注小编,并在后台私信小编:“01”即可领取。

标签: #python程序的入口函数