小白编程系列(五):Python学习路径

前言

这个系列写到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编程的学习范围

我们还是先把学习范围说一下,来张脑图先,先有个大致的概念。

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
2
Python 2.7.3(default,Apr 20 2012, 22:39:59)
[GCC 4.6.3] on linux2

所以如果你安装了操作系统,那么你就可以开始了,是不是很容易上手。如果是Windows系统还是建议大家用虚拟机安装个Ubuntu操作系统就ok了。

如果非得要在Windows下来进行Python编程学习,那就是下载、设置环境变量然后使用cmd命令来测试一下,也很简单。

掌握Python

Python作为一种从脚本语言开始发展的编程语言,很容易上手。我们先来看一下Python的“Hello world” 是什么样的:

1
print "Hello World"

这样就可以了,是不是很简单?

当然更标准的做法是把代码写在.py文件中,因为编程内容总不是一两句话最好还是写在文件中吧,然后再执行,不过也是一样的简单,是这样的:

1
2
[root@localhost python]$ python hello.py 
Hello World!

也可以是这样:

1
2
[root@localhost python]$ ./hello.py 
Hello World!

程序的运行没有问题候,你就可以关注Python本身,例如它的语法、控制、函数、数据结构、面向对象等等,逐步的转向更高级的特性,相信你也会很快上手的。

另外Python的开发中要使用各种库,这是一个极为重要的学习组成部分,伴随着我们熟悉和掌握python的整个过程。特别是大量的第三方库,更是提高效率,解决很多问题的必然之选,不过有一个好消息是几乎大部分第三方库都可以在github或者 pypi上找到源码。源码包格式大概有zip 、 tar.zip、 tar.bz2。传统的方式是解压这些包,进入解压好的文件夹,通常会有一个setup.py的文件。打开命令行,进入该文件夹。运行以下命令,就能把这个第三库安装到系统里,就像这样:

1
python setup.py install

但是现在一般都有包管理工具如pip来安装,当然前提是你能连得上互联网,它的原理就是从Python的官方源pypi.python.org/pypi下载到本地,然后解包安装。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 安装package
pip install packagename

# 卸载package
pip uninstall packagename

# 查看所安装的package
pip list

# 将项目依赖的库重定向输出到文件,cd到项目根目录
pip projectname > requirements.txt

# 他人安装项目的依赖库
pip install -r requirements.txt

如果大家可以开始学习第三方的库的时候,Python语言本身相信大家已经掌握的差不多了。

Django/Flask

Python的Web框架很多,我们建议大家学习DjangoFlask

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://xb.hubwiz.com/

推荐在线课程

http://www.hubwiz.com/course/?type=Python

Python API

Python 3

Python 2

学好python,去拥抱和改变未来吧。。

Python 拥抱和改变未来

注:这个系列暂时先写到这里,以后再不断的更新和修正,增加其他语言内容。