零基础学编程027:站在巨人的肩膀上

在《零基础学编程021:获取股票实时行情数据》这一节里,我们利用urllib抓取新浪财经中的股票数据,可以取出谷歌股票的开盘价,回顾一下代码:

import urllib.request as req

with req.urlopen('http://hq.sinajs.cn/list=gb_goog') as f :
    hq = f.read().decode('GBK')
    v = hq.split(',')
    print(v[1])

但我们很多时候并不需要也不应该从零开始构建一个程序,大量的程序员已经构建了丰富的而且免费的模块供我们使用。编程领域中流行着一句非常有名的话,叫做“不要重复发明轮子(Don't Reinvent the Wheel)”,意思是说不要重新去写别人已经写好的、甚至已经优化过的基本函数。

程序员通常会看不起别人写的代码,所以重复发明了一个又一个的轮子,但他写的代码也好不到哪里去。因为一串代码从表面上看比较简单,但实际动手时会遇到许多复杂的情况,有时需要花费大量的时间才能让程序不出错,并且性能稳定。所以,如果有比较可信的代码库,又不侵犯版权的情况下,尽量还是用别人写好的代码库更能节省时间。

Python中已经建立了一个庞大的代码库社区,称作 Python Package Index,简称Pypi,网址:https://pypi.python.org。世界各地的程序员们已经贡献了无数的优秀的模块,在动手写一个程序时,记得到这个网站上搜一搜有没有可以直接拿来就用的函数,站在巨人们的肩膀上,写起程序来又快又好。

对于我们文章开头提到的功能,在Pypi中就有一个现成的提到股票行情的模块库,叫yahoo-finance,看看该模块库的简单帮助说明,几行代码就可以取出开盘价。这个代码库的优点在于还提供了几十个其它功能,包括取出历史行情数据,这个功能我们将来会用到。

from yahoo_finance import Share
openPrice = Share('goog').get_open()
print(openPrice)

对于新手来说,上面的代码一运行就会报错,是import语句执行的时候提示找不到yahoo_finance包。所以,最值得一提的是安装这个yahoo-finance模块库的过程,将来安装其它任何模块库也如法炮制即可。

如今的Python已经极大地简化了模块安装的过程,它就是 pip,在python2.7.9和python 3.4之后的安装版本中都已经内置了pip,只要有网络,安装任何模块库,一般只需要一个命令就可以搞定。

pip 是“Pip Installs Packages”的缩写,是一个专门用于管理Python软件包的程序,运行这条命令:

python -m pip install yahoo-finance

新手不知道在哪里运行上面那条命令,如果环境不正确(PATH环境变量问题),在cmd.exe黑窗口中运行也会出错。如果你安装了WinPython,则运行那个WinPython Command Prompt.exe,在这个黑窗口中执行pip命令即可。安装过程是全自动的,成功后会给出相应的提示。

小结:

  • 不要重复发明轮子
  • pypi中资源非常丰富
  • pip用于安装其它模块库

--- END ---

原文发布于微信公众号 - 申龙斌的程序人生(slbGTD)

原文发表时间:2017-03-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏移动开发平台

零代码三步快速集成腾讯移动分析(MTA)(android)

腾讯移动分析有专业的移动应用数据分析能力,为您的应用提供实时数据统计分析服务。

4.8K9
来自专栏安全领域

DNS审查,了解一下

任何拥有在线资产的组织机构都需要意识到发生单点故障并不是什么好事。物联网病毒"Mirai"十月份针对某个DNS提供商的僵尸网络攻击,使我们了解到,一旦像DNS这...

1222
来自专栏沈唁志

HTTPS全面普及的时代来临,SSL证书刻不容缓

1182
来自专栏恒思考

软件必备模块-如何看懂代码

为什么写这一篇?因为上班了以后写代码是一个技能,不过大多数时候也时常是现用现差,这个说出来也是丢人。不过生活就是这样吧,不过积累的很重要的一个东西是什么呢,就是...

763
来自专栏Python数据科学

Python爬虫之工作篇—寻找你的招聘信息

最近总被智联招聘广发骚扰,烦死个人了简直。索性点进去看了看爬虫工程师现在市场需求到底怎么样了?发展前景如何?看完了之后感觉目前还不错,根据北京来看职位需求还是蛮...

861
来自专栏FreeBuf

如何使用Twitter构建C;C服务器

写在前面的话 社交媒体网络对于企业的市场营销团队来说,绝对是一个非常好的推广平台。如果能够正确使用它们的话,绝对可以帮助企业带来新的商机。因此,社交媒体平台(例...

2345
来自专栏小文博客

win10更新后lol帧数一直60解决办法

1083
来自专栏Android机动车

我的第一个RN项目——趣闻

之前利用自己的业余时间入门了微信小程序,并写了一个入门项目 我的第一个微信小程序-趣闻 ,整体效果和之前写的 kotlin-android 版的 趣闻 模块和功...

231
来自专栏轮子工厂

分享两个可供练手的Javaweb网站源码

本科大二的时候记得有一回实验课,系主任给我们代的课。当时我特别认真的坐在第一排敲代码,老师可能是觉得我写代码的姿势特别的帅气,于是过来和我聊天,然后我凭借三寸不...

634
来自专栏云飞学编程

世界杯快到了,看我用Python爬虫实现(伪)球迷速成!

还有4天就世界杯了,作为一个资深(伪)球迷,必须要实时关注世界杯相关新闻,了解各个球队动态,这样才能在一堆球迷中如(大)鱼(吹)得(特)水(吹),迎接大家仰慕的...

530

扫描关注云+社区