前言:
眼前兄弟们对“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 发送微信消息函数封装
调用机器人对象 bot 的 friends 方法获取微信好友列表, 使用 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程序的入口函数