零基础学编程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 条评论
登录 后参与评论

相关文章

来自专栏张戈的专栏

移动搜索SEO分享:PHP自动生成百度开放适配及360移动适配专用的Sitemap文件

导读 随着智能手机的高速普及,人们将更多时间放到了手机上,麻利的做着以前只能在电脑上才能完成的购物、聊天、信息获取等事情。如此一来,站长们对移动端的 SEO 也...

3216
来自专栏轮子工厂

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

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

764
来自专栏木头编程 - moTzxx

微信公众平台开发[3] —— 微信公众号支付功能(PHP)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011415782/article/de...

822
来自专栏木子昭的博客

markdown一键转换到微信公众号编辑器格式(送MarkEditor激活码)

MarkEditor是我目前找到的,将markdown转换为微信公众号格式, 最为方便的软件, 功能很强大, 官网: https://www.markedito...

1132
来自专栏Python中文社区

Python进行远程视频监控

專 欄 ❈小丸子,网络工程专业在读。希望通过将自己学到的知识分享出来可以发现自己某个知识的薄弱点,更加有利于学习,喜欢将自己所学到的知识运用在生活中。乐于分享...

2189
来自专栏魏艾斯博客www.vpsss.net

iq block country 插件屏蔽中国 IP 防止 wordpress 外贸网站被抄袭

3915
来自专栏农夫安全

Linux下Arp欺骗攻击的另类应用之屌丝泡妞记

本文为小编在新东文章整理中阅读后发现不错,如有侵权联系作者删除 EveryNote 真是个好动西,跨平台的笔记本工具。好到,平时记录一些自己的东西,都懒得在写东...

3538
来自专栏诸葛青云的专栏

两个小巧好用的C语言编辑器

近期有一些新关注的伙伴在后台经常留言刚入门 C语言 我该选择什么 C语言 编辑器好呢?都说欲善其事必先利其器,网络上也有很多不同类型的编辑器,让人很难进行抉择!...

320
来自专栏编程

Parcel,零配置开发 React 应用!

本文译自 Create a React app with zero configuration using Parcel。 webpack 已经经历三四年的发展...

1875
来自专栏空帆船w

珍藏已久的 Chrome 插件

这里主要推荐本人常用的 Chrome 插件,能够帮助你更加便捷高效的使用 Chrome 浏览器。

824

扫码关注云+社区