大家学习编程,如果从"hello world"开始的话,往往因为太过无聊而放弃。因此我们从一些简单实用的小程序开始帮助大家入门。 Python编程语言的特点是简单实用,而且有大量现成的库可以调用,在大数据领域应用很广,如果你只打算学习一门编程语言的话,Python是首选。这里我们用的版本是Python 2.7,是现在用的比较多的,Python 3在语法上做了一些改动,所以大家注意不要下错版本哦。 关于如何安装和运行Python,大家可以百度一下,或者问问身边的攻城狮。 下面正式开始上课: 假如我们知道某支股票的代码,比如南京银行是“sh601009”,那么我们在浏览器中输入:http://hq.sinajs.cn/list=sh601009 就会在页面中显示如下信息:
var hq_str_sh601009="南京银行,11.700,11.750,11.570,11.700,11.570,11.570,11.580,23399310,271669050.000,252139,11.570,354100,11.560,637600,11.550,100300,11.540,176900,11.530,27700,11.580,7400,11.590,132356,11.600,150000,11.610,149800,11.620,2017-04-12,14:16:43,00"; 第一个是股票名字,第二个数字11.700是今日开盘价,第三个数字11.750是昨日收盘价,第四个数字11.570是当前股票价格,其他数字的意义可以百度查询“新浪实时股票数据接口”。 今天我们的任务是显示股票的实时价格,总共只需要几行代码哦! 先看下面这段代码: import urllib2的意思是引入urllib2这个库,因为在程序中我们要使用抓取网页信息的技能,所以要把它装备上。 接下来的几行代码比较通用,大家用的时候复制粘贴就好,大概意思就是使用urllib2的网页抓取技能从url中指定的网址获取信息,存入到stockInfo中。这里stockInfo是我们自己定义的变量,用来存储股票信息。 大家可以用在线的Python解释器敲入这几行代码,然后点击运行就能看到结果。在线解释器网址:https://c.runoob.com/compile/6 显示结果如下,左边是自己敲的代码,右边是运行结果 显示结果跟我们在浏览器中看到的差不多,唯一有问题的是股票名字“南京银行”显示是乱码,这个是中文编码导致的,现在我们先不管它。 仔细观察显示结果,机智的我们发现,各项数据是用逗号分隔开的。所以我们可以使用split技能把数据用逗号分开然后存入一个列表,只需要一行代码就能搞定,so easy~~ stockList = stockInfo.split(',') 上面.split(',')可以理解为发动split技能将股票信息分割,然后stockList是我们定义的列表变量,可以理解为一个只有一列的excel表格。 存入表格后,如何获取我们需要的股票价格信息呢,同样so easy只需要一行代码,如下: print stockList[3] 由于程序猿数数一般是从0开始,所以stockList[3]代表第四个数据,大家可以用在线解释器运行下试试,结果如下 11.480就是南京银行现在的价格,大家也可以试试变换下标,比如stockList[2],看看输出的是什么信息。 恭喜你,至此,你已经学会编写一个小程序,完成了从人类到程序猿的退化! 下面我们继续扩展下这个小程序。 现在我们的程序只能显示一次当前价格,如何能每隔一段时间就显示更新的价格呢? 这里我们需要装备time技能库,同样只需几行代码就能解决战斗,so easy~~ 扩展后的代码如下: 首先,我们引入了time技能库,因为之后使用了sleep昏睡技能。 time.sleep(5)表示让程序暂停5秒后继续执行,如果是sleep(20)就是暂停20秒 然后,用了一个while(1)无限循环。while(1)后面有个冒号,冒号后面的代码块将一直循环执行。Python中用缩进格式来划分代码块,大家可以看到第7到第13行前面有对齐的空格(一般编辑器会自动生成这样的格式)。 要注意的是,由于使用了无限循序功能,程序会一直运行,因此不能使用在线解释器来运行程序。在线解释器只能跑运行时间比较短的程序,所以大家还是在本机装一个Python吧,记住装2.7x的版本哦。 如果有小白不懂while(1)循环的,我举个简单的例子: 运行上面这两行代码,程序将不停输出"蟹老板瘦了"~~~ 同理,我们的程序将不断的运行第7到第13行代码,第12行代码将输出当前股票价格,然后第13行代码使程序暂停5秒钟,接着会输出5秒钟之后的股票价格,如此循序下去,子子孙孙无穷匮也。 今天先讲到这里,下周继续~~ 留个课后题,增加一个功能:每30秒查询下股票价格,如果与30秒之前相比下跌了,则输出“禁用词语er! 10 push-ups!” 为方便显示,给大家一个显示当前时间的代码,也就一行: currentTime = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())) 输出样本如下: 想知道答案的,在公众号后台输入“code01”获得源代码链接 Happy Learning^^ |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|