其实,在阅读这本书之前,我已经对python的基础语法有所了解,但是对于如何用 python 去创建一个项目并不清楚。所以我的阅读重点主要放在了第二部分,对第一部分只是大体的浏览了一下。
当我浏览第一部分的时候,会让我想起初学python时遇到的一些坑。在这本书中竟都一一指明了,如果我刚开始学习python的时候,就知道这本书该多好。
- 在刚开始安装的时候,一定要记住将安装路径加入到环境变量中,否则你在终端窗口中执行
python
命令时它会报错。 - 在学习python之前,我已经上完了C语言的课程,再学习python时觉得非常简单。仅仅只需要几行就能实现令人惊讶的效果,但有时也会被变量之间的赋值给绕晕了,就像被C语言的指针给绕晕似的。这到底是浅拷贝呢?还是深拷贝呢?当我把一个变量赋值给另一个变量的时候,改变其中一个变量的值会不会影响另一个变量的值呢?在本书中,将变量描述为指向值的标签,让读者更容易的理解了python变量的行为。这一部分内容也是在第二版中新添加的,可见这本书的内容也一直不断地在提高和改进。
- 这本书几乎覆盖了python的所有基础语法内容,可以让你一窥python的整个面目。以前参加数学建模的时候,我就试着用Python来处理数据,写好程序之后,就等着出结果了。由于数据量有点大,有时要半个小时或者更多,但最糟糕的是,当遇到异常的数据(比如,空的数据)时,程序会异常终止,之前所计算的数据也都没有了。因为我没有意识到要进行异常处理,我也不知道啥是异常处理。后来,通过上网搜索才知道了要用异常处理来解决这个问题,既不会因为异常数据而终止,同时还发现了异常数据的具体位置。当然,我们也可以不需要异常处理,先写个程序去掉异常数据,再处理也是可以的,但相比前一种方法不够简洁,也不够健壮。如果我早读了这本书,可能就不用浪费那些时间了,小心翼翼的等着程序的执行了,生怕一个错误葬送了我之前已计算好的数据。
第二部分就没有那么容易去阅读了。我并没有做项目的任何经验,只是写过几行或几十行的小程序,而在项目中要涉及很多的文件,而且它们之间还互有关系。第二部分的三个项目根据难度排序,数据可视化 < 外星人入侵 < web 应用程序。
- 数据可视化部分主要是利用了matplotlib和plotly这两个库对一些天气和地震数据进行了可视化分析。其中也介绍了如何对csv文件和json文件进行解析,介绍了很多绘图函数的用法,用处还是很大的。最令我惊讶的的是,居然可以绘制一张地图,并在上面根据经纬度坐标描点绘制散点图或折线图。而且还可以生成一个html文件,且可以进行交互操作。以前参加泰迪杯数据挖掘比赛的时候,就遇到一个题,需要在地图上画出车辆的行驶轨迹。在网上找了好久,才找到了个较为满意的方案。如果我早看到这本书,就不需要花费那么多时间了。
- 外星人入侵使用pygame来实现一个小游戏,麻雀虽小,但五脏俱全。作者先实现了游戏的一部分,刚开始只有太空飞船,后来又添加了外星人。在较为完整的情况下,又添加了积分系统、等级系统等。使得它变成了我们看到的那种太空大战游戏。虽然是使用pygame来实现的,但是使用pygame接口的时候并不多,大多数是用了Python的一些基础语法知识,使用到的pygame接口也较为容易理解,所以这个项目理解起来不算难,且充分锻炼了在第一部分学到的Python基础知识。
- 最难的项目当属web应用程序了,它是利用django搭建了一个学习记录平台,就像是博客那样。和外星人入侵项目相比,这个项目需要用到的库的接口要多的多,涉及到的文件也要多,层次结构也更分明,更像是一个真实的项目。仅仅通过两章的内容就把django讲解清楚,那是不可能的。但是可以让我们了解如何使用django开发一个web应用的大致流程以及项目如何部署在服务器上。
这本书只是一本入门书,还有一些更高级的内容在本书中并没有涉及,如装饰器、闭包、如何编写才能提高python的效率等。对于如何开发一个python项目,这本书只是带我们入了门,还有更多的内容需要我们从其他地方去学习。正如作者在后记中所说的那样“深入学习Python后再去开发项目时,你将能够更高效地解决更多的问题”。对于想入门python或入门python项目的人来说,这确实是一本绝佳的好书。