根据统计学原理教你如何用Python购买彩票

不会写博客,也从来没有写博客的惯例。如果写的不好请忽略。

先来说说自己思路。由于之前看过一则新闻说程序员根据自己制作的软件赌博,賺了一大笔。幸好现在在学python,想想如果分析到近十几年的彩票(这里就拿双色球来说)每个数字的出现情况,根据统计学来讲的话,数字出现次数最多的概率最大。所以接下来就开始动手了。

本来是打算爬取http://baidu.lecai.com/lottery/draw/list/50?agentId=5555

根据统计学原理教你如何用Python购买彩票_第1张图片
彩票网站图片

这个网站的资源。但是发现这个之前的年份的彩票不是很好获取,所以我就把彩票文件下载下来,准备本地做处理。

下面是你我下载下来的彩票文件

根据统计学原理教你如何用Python购买彩票_第2张图片
彩票文件

接下来就是搬砖的时候了。

首先想到双色球选择是红球01-33数字,篮球是01-16的数字。而我要的是每个数字对应的个数,所以先来创建两个字典去保存这些数字,默认个数都为0.这里比较灵活,之前想一个个创建,但是后来为了简单。所以偷懒,毕竟偷懒是程序员的美德。下面是创建的字典。

根据统计学原理教你如何用Python购买彩票_第3张图片
字典创建

字典创建完,接下来就是主题业务的实现。数据处理是最烦最耗时,但是却是最能让你感受到成就的地方。首先分析单个文件的结构,以2003.txt这个文件为例

根据统计学原理教你如何用Python购买彩票_第4张图片
2003.txt彩票文件

分析得出我们只需要中间这一串东西。并且中间这一串字符串是前面6个应该是红球后面"|"应该是蓝球。接下来开搞。

根据统计学原理教你如何用Python购买彩票_第5张图片

短短13行直接搞完。先来说下什么意思吧。

29-31行是为了创建这几个文件的路径,为了后面一个for循环直接读取到文件。33-34其实已经提出来每一行字符串,35-41行是提取具体的每一行对应的数字,并且分割出来,之后就取出对应的数字对应的value+1。Python最强大的地方感觉就是对字符串的处理,感觉比所有的语言都方便并且实用(顺便提一下我正在搬iOS的砖)46-47是打印红球和蓝球出现次数最少的。这个是同事要求,只要打印出来可以随便查看。

以后继续奋勉,在搬砖的道路上希望能少走弯路,有什么好的方法学习Python的话非常愿意倾听。并且有坑需要填补的话非常愿意效犬马之劳。代码稍后放在github上

你可能感兴趣的:(根据统计学原理教你如何用Python购买彩票)