我为啥要读这本书?
读《Head First Head》这本书有两个原因:
不得不说,第一个原因是Python本身吸引了我。Python是一种编程语言,诞生于20世纪90年代初,自从2004年以后Python的使用率呈线性增长。2011年1月,它被TIOBE编程语言排行榜评为2010年度语言。截止2016年1月,前十名的编程语言如下:
可以看出Python已经名列第5,增长势头强劲。既然已经有这么多人选择了Python,那抱着“能够成为懒蚂蚁”的愿望,我也得学学。
第二个原因,是“Head First(中文版译为深入浅出)”系列图书的特点“黏住”了我。以前就看过该系列的其它书籍,如:设计模式、面向对象分析与设计、Java等。它以特殊的方式排版,由大量的图片和有趣的内容组合构成,帮助读者达到非疲劳的沉浸式学习效果。
Python有什么与众不同的地方?
作为一门编程语言,Python同样有语句、表达式、操作符、函数、模块、方法和类等等。但它与众不同的地方是:优雅、明确、简单,在这些设计哲学之上Python提供了大量的、功能强大的编程库,并且都是开源的!
说了那么多,我们先从一个简单的示例来认识Python:
上面的代码非常简短,就完成了读写文件的操作。没错,你可以看出Python不用声明变量类型,不用象其它编程语言一样要求你:“要告诉我读取多少个字节哦”;“要防止超出文件末尾哦”;“对比起,乱码是因为你要转换为汉字编码哦”;“要牢记必须要关闭文件哦,否则我会崩溃的!”。相信我,你去度娘输入“java读写文件”,然后对比一下代码就知道Python有多简单优雅了。Python的创始人提倡编程语言应该这样:按照程序员的意图做,而不是要程序员告诉怎么做。
我是如何行动的?
设计良好的软件系统,大多提供数据导出功能,通过这种数据共享的方法,可以用另外的程序扩展当前系统不具备的功能,如:制作更灵活的报表。在公司内部,财务系统、B2C直销系统等都有数据导出功能。
为此我设计了一个小的模拟需求:从源文件(csv格式)读取所有行;去掉首行(表头);过滤掉某列包含关键字的行;把整理好的行写入目标文件(csv格式)。
源文件的格式如下(csv格式就是逗号分隔的文本文件,用excel可以打开):
处理后的新文件格式如下:
Python的源代码如下:
上面短短的代码已经完成了设想的需求。Python提供的csv模块可以从文件读取数据后,直接转换为list对象,然后我们直接可以用类似访问数组的方式读取数据(在本例中是类似一个二维数组)。Python让我们更关注要要做什么,而不用太关注如何做到(如:如何读取一行、如何把一行拆分为列,请再次相信我,你可以用java完成同样的功能,但代码绝对没有这么优雅简洁)。
Python的其它亮点
技术上的亮点,限于篇幅以及还在学习中就不一一列举了。前面提到Python在编程语言中已经排名第5,那有哪些著名的应用呢?
国外的有:
EVE-网络游戏EVE大量使用Python进行开发
Reddit -社交分享网站
Dropbox -文件分享服务
Fabric -用于管理成百上千台Linux主机的程序库
Trac -使用Python编写的BUG管理系统
Mailman -使用Python编写的邮件列表软件
Mezzanine -基于Django编写的内容管理系统
Blender -以C与Python开发的开源3D绘图软件
在oschina上的python开源项目多达2691款,网址是:http://www.oschina.net/project/lang/25/python,请大家自行查看吧。
总结
用Python可以开发互联网、数据库访问、桌面图形界面、科学计算、网络通信、商业办公以及游戏程序,基本涵盖了大部分的软件开发领域。但我目前更关注它处理数据的便捷性,因为在公司内部有一些被称为信息孤岛的系统,这些系统发挥着重要的生产作用,但由于种种原因,它们在数据共享、出具更多样的决策报表等方面力不从心。用Python的数据高效开发能力作为粘合剂,不失为一种解决数据孤岛的方案。