最近经常看到关于星座的推送,我其实不信这个,但是由于推送得太多了,总有几篇会让我好奇地点进去看看。然后想想其实用Python写一篇星座相关的文章也不错。
正好,Python计算一个人的星座特别简单,因为每个星座的日期是固定的。我们只需要四行代码就能计算:
把出生的月份和日期传入这个函数,就能得到对应的星座了。当然,这只是非常简单的第一步,接下来让我们计算2012全球富豪榜前一百名中,哪个星座的人最多,嘻嘻,期待吗?
1.获得数据
豆瓣上有个帖子帮我们列出了相应的数据,不过是以文本的形式:
幸好有统一的格式,我们能用正则表达式把出生日期提取出来:
(\d+) ?月 ?(\d+) ?日
在Vscode中还能直接用模式替换,变成我们想要的元组形式:
点击回车就能替换成元组形式了哦。最后会发现有出生月日的只有88条,没关系,够我们实验用的。
2.放入代码计算
将前面获得的所有日期放入数组中,然后调用我们一开始说的星座计算函数即可,当然,需要用一个字典来计算每次星座的出现:
这里由于数据过多,我就没截上来了。有兴趣的朋友可以Python实用宝典公众号后台回复 星座富豪计算 获取全部数据和代码。
结果如下:
{'水瓶座': 7, '天蝎座': 7, '处女座': 8, '双鱼座': 7, '白羊座': 12, '狮子座': 8, '天秤座': 5, '金牛座': 9, '巨蟹座': 1, '双子座': 5, '摩羯座': 3, '射手座': 4}
排个序吧:
print(sorted(result.items(), key=lambda item: item[1]))
结果:
[('巨蟹座', 1), ('摩羯座', 3), ('射手座', 4), ('天秤座', 5), ('双子座', 5), ('水瓶座', 7), ('天蝎座', 7), ('双鱼座', 7), ('处女座', 8), ('狮子座', 8), ('金牛座', 9), ('白羊座', 12)]
白羊座惊为天人达到了12位。12/88 = 14%啊,这个比例相当牛皮了。然而我的巨蟹座只有1位,枯了,难道我没有成为富豪的天赋?
不过,大家也不要伤心。我们只取了88名富豪的数据还不够多,像这样的数据分析大概要8888名富豪的出生日期才能得到一个比较靠谱的结果。
如果你喜欢今天的Python 教程,请持续关注Python实用宝典,如果对你有帮助,麻烦在下面点一个赞,有任何问题都可以在下方留言,我们会耐心解答的!
Python实用宝典 (pythondict.com)
不只是一个宝典
欢迎关注公众号:Python实用宝典