程序员如何用Python了解女朋友的情绪变化?

2019 年 4 月 19 日 图灵教育

好不容易有了女朋友,可相处起来总是磕磕碰碰。


有时候,你很想关心她,但是你太忙了,以至于她一直抱怨,觉得你不够关心她。你暗自下决心,下次一定要准时发消息给她,哪怕是几句话,可是你又忘记了。你觉得自己很委屈😭,但是她又觉得你不负责。


现在,再不用担心了,用python就可以给女友定时发提示消息了,而且不会漏过每一个关键时刻,每天早上起床、中午吃饭、晚上吃饭、晚上睡觉,都会准时发消息给她了,而且还可以让她学习英语单词哦!


在生日来临之时,自动发祝福语。在节日来临之时,比如三八妇女节、女神节、情人节、春节、圣诞节,自动发问候语哦,再也不用担心他说你没有仪式感了😀


最重要的是,可以实时知道女友的情感情绪指数,再也不用担心女友莫名其妙生气了。


编写思路


为了方便快速开发,我们使用python中的wxpy模块完成微信的基本操作。


首先,我们设置一个config.ini配置文件,并从这个配置文件开始读取信息。这些参数一看就懂,所以无需多言。


↓上下滑动可查看完整内容↓



# 读取配置文件

cf = configparser.ConfigParser()

cf.read("./config.ini",encoding='UTF-8')


# 设置女友的微信名称,记住,不是微信ID也不是微信备注

# 你女友的微信名称,记住,不是微信ID也不是微信备注

my_lady_wechat_name = cf.get("configuration", "my_lady_wechat_name")


# 设置早上起床时间,中午吃饭时间,下午吃饭时间,晚上睡觉时间

say_good_morning = cf.get("configuration", "say_good_morning")

say_good_lunch = cf.get("configuration", "say_good_lunch")

say_good_dinner = cf.get("configuration", "say_good_dinner")

say_good_dream = cf.get("configuration", "say_good_dream")


# 设置女友生日信息

# 几月,注意补全数字,为两位数,比如6月必须写成06

birthday_month = cf.get("configuration", "birthday_month")

# 几号,注意补全数字,为两位数,比如6号必须写成08

birthday_day = cf.get("configuration", "birthday_day")


# 读取早上起床时间,中午吃饭时间,下午吃饭时间,晚上睡觉时间的随机提示语

# 一般这里的代码不要改动,需要增加提示语可以自己打开对应的文件修改

#早上起床问候语列表,数据来源于新浪微博

str_list_good_morning = ''

with open("./remind_sentence/sentence_good_morning.txt", "r",encoding='UTF-8') as f:

    str_list_good_morning = f.readlines()

print(str_list_good_morning)


#中午吃饭问候语列表,数据来源于新浪微博

str_list_good_lunch = ''

with open("./remind_sentence/sentence_good_lunch.txt", "r",encoding='UTF-8') as f:

    str_list_good_lunch = f.readlines()

print(str_list_good_lunch)


#晚上吃饭问候语列表,数据来源于新浪微博

str_list_good_dinner = ''

with open("./remind_sentence/sentence_good_dinner.txt", "r",encoding='UTF-8') as f:

    str_list_good_dinner = f.readlines()

print(str_list_good_dinner)


#晚上睡觉问候语列表,数据来源于新浪微博

str_list_good_dream = ''

with open("./remind_sentence/sentence_good_dream.txt", "r",encoding='UTF-8') as f:

    str_list_good_dream = f.readlines()

print(str_list_good_dream)


# 设置晚上睡觉问候语是否在原来的基础上再加上每日学英语精句

# False表示否 True表示是

if((cf.get("configuration", "flag_learn_english")) == '1'):

    flag_learn_english = True

else:

    flag_learn_english = False

print(flag_learn_english)

# 设置所有问候语结束是否加上表情符号

# False表示否 True表示是

str_emoj = "(•‾̑⌣‾̑•)✧˖°----(๑´ڡ`๑)----(๑¯ิε ¯ิ๑)----(๑•́ ₃ •̀๑)----( ∙̆ .̯ ∙̆ )----(๑˘ ˘๑)----(●′ω`●)----(●・̆⍛・̆●)----ಥ_ಥ----_(:qゝ∠)----(´;ω;`)----( `)3')----Σ((( つ•̀ω•́)つ----╰(*´︶`*)╯----( ´´ิ∀´ิ` )----(´∩`。)----( ื▿ ื)----(。ŏ_ŏ)----( •ิ _ •ิ )----ヽ(*΄◞ิ౪◟ิ‵ *)----( ˘ ³˘)----(; ´_ゝ`)----(*ˉ﹃ˉ)----(◍'౪`◍)ノ゙----(。◝‿◜。)----(ಠ .̫.̫ ಠ)----(´◞⊖◟`)----(。≖ˇェˇ≖。)----(◕ܫ◕)----(`◕‸◕´+)----(▼ _ ▼)----( ◉ืൠ◉ื)----ㄟ(◑‿◐ )ㄏ----(●'◡'●)ノ♥----(。◕ˇ∀ˇ◕)----( ◔ ڼ ◔ )----( ´◔ ‸◔`)----(☍﹏⁰)----(♥◠‿◠)----ლ(╹◡╹ლ )----(๑꒪◞౪◟꒪๑)"

str_list_emoj = str_emoj.split('----')

if ((cf.get("configuration", "flag_wx_emoj")) == '1'):

    flag_wx_emoj = True

else:

    flag_wx_emoj = False

print(str_list_emoj)


# 设置节日祝福语

# 情人节祝福语

str_Valentine = cf.get("configuration", "str_Valentine")

print(str_Valentine)


# 三八妇女节祝福语

str_Women = cf.get("configuration", "str_Women")

print(str_Women)


# 平安夜祝福语

str_Christmas_Eve = cf.get("configuration", "str_Christmas_Eve")

print(str_Christmas_Eve)

# 圣诞节祝福语

str_Christmas = cf.get("configuration", "str_Christmas")

print(str_Christmas)


# 她生日的时候的祝福语

str_birthday = cf.get("configuration", "str_birthday")

print(str_birthday)


如果你愿意,可以在上面对时间的判断中,加入一些其他你想要的,这样你女友就更开心啦!后期如果有时间,我将会加上以上节日问候功能。😀


接着,开启微信机器人,为了程序的健壮性,自动判断一下操作系统,根据不同操作系统执行不同指令:


# 启动微信机器人,自动根据操作系统执行不同的指令

# windows系统或macOS Sierra系统使用bot = Bot()

# linux系统或macOS Terminal系统使用bot = Bot(console_qr=2)

if('Windows' in platform.system()):

    # Windows

    bot = Bot()

elif('Darwin' in platform.system()):

    # MacOSX

    bot = Bot()

elif('Linux' in platform.system()):

    # Linux

    bot = Bot(console_qr=2,cache_path=True)

else:

    # 自行确定

    print("无法识别你的操作系统类型,请自己设置")


设置完相关参数以后,我们再来学习一下,如何每天教女友学英语:


# 获取每日励志精句

def get_message():

    r = requests.get("http://open.iciba.com/dsapi/")

    note = r.json()['note']

    content = r.json()['content']

    return note,content


只有每天的问候和节日问候是仅仅不够的,我们必须时刻知道她的情绪指数,这里可以使用snowNlp或者jieba来做分析,但是为了能够在打包成exe可执行文件时使得程序尽可能小,我们采取直接调用接口的方式来做。代码如下:


# 接收女友消息监听器

# 女友微信名

my_girl_friend = bot.friends().search(my_lady_wechat_name)[0]

# chats=my_girl_friend 表示接收消息的对象,也就是女友

# except_self=False 表示同时也接收自己发的消息,不需要接收自己消息的可以去掉

@bot.register(chats=my_girl_friend, except_self=False)

def print_others(msg):

    # 输出聊天内容

    print(msg.text)


    # 做极其简单的情感分析

    # 结果仅供参考,请勿完全相信

    postData = {'data':msg.text}

    response = post('https://bosonnlp.com/analysis/sentiment?analysisType=',data=postData)

    data = response.text


    # 情感评分指数(越接近1表示心情越好,越接近0表示心情越差)

    now_mod_rank = (data.split(',')[0]).replace('[[','')

   print("来自女友的消息:%s\n当前情感得分:%s\n越接近1表示心情越好,越接近0表示心情越差,情感结果仅供参考,请勿完全相信!\n\n" % (msg.text, now_mod_rank))


    # 发送信息到文件传输助手

   mood_message = u"来自女友的消息:" + msg.text + "\n当前情感得分:" + now_mod_rank + "\n越接近1表示心情越好,越接近0表示心情越差,情感结果仅供参考,请勿完全相信!\n\n"

    bot.file_helper.send(mood_message)


教完女友学英语后,开始把我们的关心语发给她。这里涉及到wxpy模块的相关操作,很简单,看我的例子就会了:


# 发送消息给她

def send_message(your_message):

    try:

        # 对方的微信名称

        my_friend = bot.friends().search(my_lady_wechat_name)[0]


        # 发送消息给对方

        my_friend.send(your_message)

    except:


        # 出问题时,发送信息到文件传输助手

        bot.file_helper.send(u"守护女友出问题了,赶紧去看看咋回事~")


最后,就是如何每天定时发关心语给女友的问题了。首先来个while循环,365天无限关心😀


  # 来个死循环,24小时关心她

    while(True):


        # 提示

        print("守护中,时间:%s"% time.ctime())


        # 每天定时问候,早上起床,中午吃饭,晚上吃饭,晚上睡觉

        # 获取时间,只获取时和分,对应的位置为倒数第13位到倒数第8位

        now_time = time.ctime()[-13:-8]

        if (now_time == say_good_morning):

            # 随机取一句问候语

            message = choice(str_list_good_morning)


            # 是否加上随机表情

            if(flag_wx_emoj):

                message = message + choice(str_list_emoj)


            send_message(message)

            print("提醒女友早上起床:%s" % time.ctime())


        …………这下面还有很多代码,我就不列出来了…………


        # 延时60秒

        time.sleep(60)


最后,输入以下代码开始守护女友模式吧~


    # 开始守护女友

    t = Thread(target=start_care, name='start_care')

    t.start()


使用教程


pip安装下列包:


  • [x] pip install wxpy

  • [x] pip install requests


设置以下内容:


[configuration]


# 设置女友的微信名称,记住,不是微信ID也不是微信备注

my_lady_wechat_name = 小强子


# 设置女友生日信息

# 若某一项月份或者日期不想设置,请输入99,不能留空

# 几月,注意补全数字,为两位数,比如6月必须写成06

birthday_month = 03

# 几号,注意补全数字,为两位数,比如6号必须写成08

birthday_day = 18


# 设置早上起床时间,中午吃饭时间,下午吃饭时间,晚上睡觉时间

# 若某一项时间不想设置,请输入99:00,不能留空

say_good_morning = 03:09

say_good_lunch = 03:10

say_good_dinner = 03:11

say_good_dream = 03:12


# 设置晚上睡觉问候语是否在原来的基础上再加上每日学英语精句

# 1表示是,0表示否

flag_learn_english = 1


# 设置所有问候语结束是否加上表情符号

# 1表示是,0表示否

flag_wx_emoj = 1


# 设置节日祝福语

# 情人节祝福语

str_Valentine = 亲爱的,情人节快乐!我想和你一起分享生命中的每一天,直到永远。


# 三八妇女节祝福语

str_Women = 嘿,女神节到了,祝我的女神开心快乐!你每天都是那么好看^_^


# 平安夜祝福语

str_Christmas_Eve = 宝贝,平安夜快乐,你吃苹果了吗?n(*≧▽≦*)n


# 圣诞节祝福语

str_Christmas = 小仙女,圣诞节快乐哦!(づ ̄3 ̄)づ╭❤~


# 她生日的时候的祝福语

str_birthday = 亲爱的,生日快乐,我已经给你准备好了礼物哦,明天你就能看到啦!(*@ο@*) 哇~


演示图片






女朋友到来前,不如先来点Python技能储备

京东计算机图书畅销榜榜首图书

《Python编程:从入门到实践》

作者:Eric Matthes   

译者:袁国忠

全书分两部分:第一部分介绍用Python编程所必须了解的基本概念,包括matplotlib、NumPy和Pygal等强大的Python库和工具介绍,以及列表、字典、if语句、类、文件与异常、代码测试等内容;第二部分将理论付诸实践,讲解如何开发三个项目,包括简单的Python 2D游戏开发,如何利用数据生成交互式的信息图,以及创建和定制简单的Web应用,并帮读者解决常见编程问题和困惑。

PSF研究员、知名PyCon演讲者心血之作,

Python进阶首选图书

《流畅的Python》

作者:Luciano Ramalho

译者:安道,吴珂

本书致力于帮助Python开发人员挖掘这门语言及相关程序库的优秀特性,写出简洁、流畅、易读、易维护的代码。特别是深入探讨了针对数据库处理时生成器的具体应用、特性描述符(ORM的关键),以及Python式的对象:协议与接口、抽象基类及多重继承。

在实际场景中解决Python的具体问题

《Python经典实例》
作者:Steven F. Lott
译者:闫兵

本书是Python经典实例解析,采用基于实例的方法编写,每个实例都会解决具体的问题和难题。主要内容有:数字、字符串和元组,语句与语法,函数定义,列表、集、字典,用户输入和输出等内置数据结构,类和对象,函数式和反应式编程,Web服务,等等。

咳咳!这等Python绝技,一定要传给儿子!

原版 Amazon 最受欢迎的青少年编程图书

《父与子的编程之旅》

作者:Warren Sande,Carter Sande

译者:苏金国,易郑超

本书中,Warren和Carter父子以亲切的笔调、通俗的语言,透彻全面地介绍了计算机编程世界。他们以简单易学的Python语言为例,通过可爱的漫画、有趣的例子,生动地介绍了变量、循环、输入和输出、数据结构以及图形用户界面等编程的基本概念。

转载自:Python数据科学

作者:云外孤岛

来源:https://www.cnblogs.com/cloudbird/p/

10534658.html

 Python书单

登录查看更多
0

相关内容

CF:ACM International Conference on Computing Frontiers。 Explanation:计算机前沿国际会议。 Publisher: ACM。 SIT: http://dblp.uni-trier.de/db/conf/cf
一份简明有趣的Python学习教程,42页pdf
专知会员服务
76+阅读 · 2020年6月22日
【实用书】Python技术手册,第三版767页pdf
专知会员服务
234+阅读 · 2020年5月21日
【实用书】Python数据科学从零开始,330页pdf
专知会员服务
141+阅读 · 2020年5月19日
【干货书】流畅Python,766页pdf,中英文版
专知会员服务
224+阅读 · 2020年3月22日
【模型泛化教程】标签平滑与Keras, TensorFlow,和深度学习
专知会员服务
20+阅读 · 2019年12月31日
强化学习最新教程,17页pdf
专知会员服务
174+阅读 · 2019年10月11日
用 Python 开发 Excel 宏脚本的神器
私募工场
26+阅读 · 2019年9月8日
一文看懂怎么用 Python 做数据分析
大数据技术
24+阅读 · 2019年5月5日
文本分析与可视化
Python程序员
9+阅读 · 2019年2月28日
如何编写完美的 Python 命令行程序?
CSDN
5+阅读 · 2019年1月19日
Python | Jupyter导出PDF,自定义脚本告别G安装包
程序人生
7+阅读 · 2018年7月17日
Python | 爬爬爬:爬百度云,爬百度贴吧,爬爱奇艺
计算机与网络安全
3+阅读 · 2018年3月30日
为什么你应该学 Python ?
计算机与网络安全
4+阅读 · 2018年3月24日
如何运用Python建一个聊天机器人?
七月在线实验室
17+阅读 · 2018年1月23日
教你用Python来玩跳一跳
七月在线实验室
6+阅读 · 2018年1月2日
可怕,40 行代码的人脸识别实践
51CTO博客
3+阅读 · 2017年7月22日
Generating Rationales in Visual Question Answering
Arxiv
5+阅读 · 2020年4月4日
Arxiv
5+阅读 · 2020年3月17日
Meta-Learning to Cluster
Arxiv
17+阅读 · 2019年10月30日
A Survey on Deep Transfer Learning
Arxiv
11+阅读 · 2018年8月6日
Arxiv
3+阅读 · 2018年6月19日
Arxiv
8+阅读 · 2018年6月19日
Arxiv
7+阅读 · 2017年12月28日
VIP会员
相关VIP内容
一份简明有趣的Python学习教程,42页pdf
专知会员服务
76+阅读 · 2020年6月22日
【实用书】Python技术手册,第三版767页pdf
专知会员服务
234+阅读 · 2020年5月21日
【实用书】Python数据科学从零开始,330页pdf
专知会员服务
141+阅读 · 2020年5月19日
【干货书】流畅Python,766页pdf,中英文版
专知会员服务
224+阅读 · 2020年3月22日
【模型泛化教程】标签平滑与Keras, TensorFlow,和深度学习
专知会员服务
20+阅读 · 2019年12月31日
强化学习最新教程,17页pdf
专知会员服务
174+阅读 · 2019年10月11日
相关资讯
用 Python 开发 Excel 宏脚本的神器
私募工场
26+阅读 · 2019年9月8日
一文看懂怎么用 Python 做数据分析
大数据技术
24+阅读 · 2019年5月5日
文本分析与可视化
Python程序员
9+阅读 · 2019年2月28日
如何编写完美的 Python 命令行程序?
CSDN
5+阅读 · 2019年1月19日
Python | Jupyter导出PDF,自定义脚本告别G安装包
程序人生
7+阅读 · 2018年7月17日
Python | 爬爬爬:爬百度云,爬百度贴吧,爬爱奇艺
计算机与网络安全
3+阅读 · 2018年3月30日
为什么你应该学 Python ?
计算机与网络安全
4+阅读 · 2018年3月24日
如何运用Python建一个聊天机器人?
七月在线实验室
17+阅读 · 2018年1月23日
教你用Python来玩跳一跳
七月在线实验室
6+阅读 · 2018年1月2日
可怕,40 行代码的人脸识别实践
51CTO博客
3+阅读 · 2017年7月22日
相关论文
Generating Rationales in Visual Question Answering
Arxiv
5+阅读 · 2020年4月4日
Arxiv
5+阅读 · 2020年3月17日
Meta-Learning to Cluster
Arxiv
17+阅读 · 2019年10月30日
A Survey on Deep Transfer Learning
Arxiv
11+阅读 · 2018年8月6日
Arxiv
3+阅读 · 2018年6月19日
Arxiv
8+阅读 · 2018年6月19日
Arxiv
7+阅读 · 2017年12月28日
Top
微信扫码咨询专知VIP会员