前言
这个系列写到Python的时候稍微能松口气,因为在写C/C++的学习路径时感觉学习内容极度陡峭,涉及的范围太广,感觉很有些写不动,希望以后通过不断的更新能将这个系列改完善好了。
不过Python和其他的语言有些不同,极容易上手,容易书写,也容易阅读,而且扩展性很好,再加上它是免费开源的一种编程语言,所以最近一些年Python的成长速度很快。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。
那么如何学好Python让我们来看看。
Python
Python,是一种面向对象的解释型计算机程序设计语言,喜欢它的人称它是一种高级动态编程语言。由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。Python是纯粹的自由软件, 源代码和解释器CPython遵循 GPL(GNU General Public License)协议。Python具有超级丰富和强大的库。
Python编程的学习范围
我们还是先把学习范围说一下,来张脑图先,先有个大致的概念。
脑图中涉及的内容属于学习Python必须要掌握的部分,我们列举的需要掌握的技能和这个图会稍微有些差异,大家可以做些参考:
1.Python基础
- 基础语法
- ……
2.标准库
- 文本处理
- 文件处理
- 图形处理
- 网络通信
- 网络协议
- 数学处理
- 数据库编程
- 多媒体应用
- 操作系统功能
- W3C
- 日志处理
- 测试
- ……
3.基础编程知识储备
4.开发工具
- IDLE
- PyCharm
- Vim
- Notepad++/EditPlus/UltraEdit
- Eclipse+PyDev
- Ulipad
5.版本管理
6.单元测试
- pytest
- doctest
- nose
- Buildbot
7.第三方库
- requests
- pip
- pycurl/httpie
- pandas
- redis
- pymongo
- mysql-python
- PIL
- numpy
- scipy
- matplotlib
- tensorflow
- Scrapy
- IPython/ipdb
- wxPython
- pyGame
- elasticsearch-py
- scikit-learn
- nltk
- Babel
- ……
8.解释器
- CPython
- Jython
- PyPy
- IronPython
9.框架
10.项目构建工具
- scons
- Bazel
11.大数据与云端
- Hadoop/MapReduce/HDFS/HBase/Hive
- Spark
- OpenStack
- Docker
12.WEB开发
Python学习上手很快,编程可以很容易的进行起来,因为Python本身的基本库就可以让学习者很好的进行Python编程。随着学习的不断深入,可以根据兴趣方向和各种第三方的库和框架不断的深入下去,无论是科学计算、数据处理、可视化、图形处理、机器学习、自然语言处理都有很强大的第三方库来提供支持,国外很多科研成果都会使用Python来表现,所以Python离尖端科技很近的。
赶紧学起来吧。
汇智网上的也有Python的基础课程,提供了在线的开发环境和工具,将编程、调试都结合在了一起,很适合小白入门学习。
怎么开始
我们最好还是从Liunx下开始,如果大家选择Ubuntu的话,操作系统本身就自带了Python。你如果在命令提示符下输入:
1 | Python |
系统应该会直接显示Python的版本信息和编译器信息(不同的操作系统版本不同):
1 | Python 2.7.3(default,Apr 20 2012, 22:39:59) |
所以如果你安装了操作系统,那么你就可以开始了,是不是很容易上手。如果是Windows系统还是建议大家用虚拟机安装个Ubuntu操作系统就ok了。
如果非得要在Windows下来进行Python编程学习,那就是下载、设置环境变量然后使用cmd命令来测试一下,也很简单。
掌握Python
Python作为一种从脚本语言开始发展的编程语言,很容易上手。我们先来看一下Python的“Hello world” 是什么样的:
1 | print "Hello World" |
这样就可以了,是不是很简单?
当然更标准的做法是把代码写在.py文件中,因为编程内容总不是一两句话最好还是写在文件中吧,然后再执行,不过也是一样的简单,是这样的:
1 | [root@localhost python]$ python hello.py |
也可以是这样:
1 | [root@localhost python]$ ./hello.py |
程序的运行没有问题候,你就可以关注Python本身,例如它的语法、控制、函数、数据结构、面向对象等等,逐步的转向更高级的特性,相信你也会很快上手的。
另外Python的开发中要使用各种库,这是一个极为重要的学习组成部分,伴随着我们熟悉和掌握python的整个过程。特别是大量的第三方库,更是提高效率,解决很多问题的必然之选,不过有一个好消息是几乎大部分第三方库都可以在github或者 pypi上找到源码。源码包格式大概有zip 、 tar.zip、 tar.bz2。传统的方式是解压这些包,进入解压好的文件夹,通常会有一个setup.py的文件。打开命令行,进入该文件夹。运行以下命令,就能把这个第三库安装到系统里,就像这样:
1 | python setup.py install |
但是现在一般都有包管理工具如pip来安装,当然前提是你能连得上互联网,它的原理就是从Python的官方源pypi.python.org/pypi下载到本地,然后解包安装。
1 | # 安装package |
如果大家可以开始学习第三方的库的时候,Python语言本身相信大家已经掌握的差不多了。
Django/Flask
Python的Web框架很多,我们建议大家学习Django和Flask。
Django是一个开源的Web应用框架,本身就是使用Python来编写的。采用了MVC的框架模式,不过在Django中,控制器接受用户输入的部分由框架自行处理,因此Django更关注的是模型(Model)、模板(Template)和视图(Views),被称为MTV模式。至于控制器的部分,则由Django框架的中URLconf机制来实现。URLconf机制是使用正则表达式匹配URL,然后再调用合适的Python函数。
Django功能十分强大,可以说是目前Python框架中最强的一个,它即可以部署在Apache服务器上,也可以运行在支持WSGI,FastCGI的服务器上。支持多种数据库,例如MySql,Sqlite,Oracle,Postgresql。Google应用引擎也支持Django的某些部分,国内支持的平台有新浪应用引擎,百度应用引擎等。
Flask是一个使用Python编写的轻量级Web应用框架。其WSGI工具箱采用的是Werkzeug ,模板引擎则使用了Jinja2 。Flask也被称为“microframework”,因为它只使用了十分简单的核心,用 extension增加其他功能。但是Flask自带开发用服务器和debugger,集成单元测试 (unit testing),RESTful,还支持secure cookies,对于WSGI1.0是100%兼容甚至还兼容Google应用引擎,所以在轻量级的Web应用框架中,很受欢迎。
再深入
我们上面提到过由于Python容易上手,能学习编程本身不是很费时间,所以在很多尖端科研领域是特别受欢迎的一种编程语言,那么再深入的话这些方向就是很好的选择,比如科学计算、数据处理、可视化、图形处理、机器学习、自然语言处理等。这些热门的领域有很多成行的第三方库,在这些库的基础上进行相应的应用开发,会事倍功半。
推荐书目
推荐在线课程
http://www.hubwiz.com/course/?type=Python
Python API
学好python,去拥抱和改变未来吧。。
注:这个系列暂时先写到这里,以后再不断的更新和修正,增加其他语言内容。