Python从入门到项目实践(超值版)
上QQ阅读APP看书,第一时间看更新

1.1 走进Python语言

欢迎来到Python的“编程”世界,很荣幸您能选择本书作为开启Python编程世界大门的钥匙。Python是一种优雅而健壮的编程语言,崇尚优美、明确、简单,是一种优秀并广泛使用的语言,它继承了传统编译语言的强大性和通用性,同时也借鉴了简单脚本和解释语言的易用性。它可以帮您完成任意想完成的工作,只有想不到,没有Python做不到。

Python的创始人为吉多·范罗苏姆(Guido van Rossum),人称“龟叔”,于1989年年底发明Python,第一个公开发行版发行于1991年。像Perl语言一样,Python源代码同样遵循GPL(GNU General Public License,GNU通用公共授权协议),如图1-1所示。

Python作为一门高级编程语言,它的诞生虽然很偶然,但是它得到程序员的喜爱却是必然之路。“龟叔”给Python的定位是“优雅”“明确”“简单”,所以Python程序看上去非常简单易懂,初学者学Python语言,不但入门容易,如果深入地研究下去,可以轻松编写出非常复杂和功能强大的程序。

图1-1 Python语言创始人

Python的设计具有很强的可读性,相比其他语言经常使用英文关键字、其他语言的一些标点符号,它具有比其他语言更有特色的语法结构。

  •  Python是一种解释型语言:这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。
  •  Python是交互式语言:这意味着可以在一个Python提示符下直接互动执行编写程序。
  •  Python是面向对象语言:这意味着Python支持面向对象的风格或代码封装在对象的编程技术。
  •  Python是初学者的语言:Python对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发,从简单的文字处理到WWW浏览器再到游戏。

1.1.1 Python语言的前世今生

1989年,为了打发圣诞节假期,Guido开始编写Python语言的编译器。Python这个名字来自Guido所挚爱的电视剧Monty Python's Flying Circus。他希望这种新的语言叫作Python语言,能符合他的理想:创造一种C和Shell之间,功能全面,易学易用,可拓展的语言。

1991年,第一个Python编译器诞生。它是用C语言实现的,并能够调用C语言的库文件。从一开始,Python就已经具有了类、函数、异常处理、包含表和词典在内的核心数据类型以及模块等为基础的拓展系统。当前Python的最新版本为3.6。Python语言的版本中2.X和3.X是个较大的跳跃和隔离,它突破了大多数软件向低版本兼容的特性。3.X版本不再兼容2.X版本程序,并且有了较大的改动,是一次里程碑的跳跃。Python版本演进如表1-1所示。

表1-1 Python软件版本发布年代

1.1.2 Python语言的优缺点

通过上面的介绍,可以了解到Python是一种动态解释性的语言。那么这种语言具有哪些优缺点呢?

1. Python语言的优点

Python语言具有如下优点。

1)易学

Python的定位是“优雅”“明确”“简单”,所以Python程序看上去总是简单易懂,初学者学Python,不但入门容易,而且将来深入下去,可以编写非常复杂的程序。

2)开发效率高

Python有非常强大的第三方库,基本上用户想通过计算机实现的任何功能,Python官方库里都有相应的模块进行支持,直接下载调用后,在基础库的基础上再进行开发,可大大降低开发周期,避免重复造轮子。

3)高级语言

使用Python语言编写程序的时候,无须考虑诸如如何管理程序使用内存一类的底层细节。

4)可移植性

由于Python的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。如果避免使用依赖于系统的特性,那么所有Python程序无须修改就几乎可以在市场上所有的系统平台上运行。

5)可扩展性

如果需要一段关键代码运行得更快或者希望某些算法不公开,可以把部分程序用C或C++编写,然后在Python程序中使用它们。

6)可嵌入性

可以把Python嵌入C/C++程序中,从而向程序用户提供脚本功能。

2. Python语言的缺点

Python语言具有如下缺点。

1)速度慢

Python的运行速度相比C语言确实慢很多,跟Java相比也要慢一些。其实这里所指的运行速度慢,在大多数情况下用户是无法直接感知到的,必须借助测试工具才能体现出来。例如用C运行一个程序花了0.01s,用Python是0.1s,这样C语言直接比Python快了10倍,算是非常夸张了,但是人们是无法直接通过肉眼感知的。其实在大多数情况下,Python已经完全可以满足人们对程序速度的要求,除非要写对速度要求极高的搜索引擎等,在这种情况下,当然还是建议用C去实现。

2)代码不能加密

因为Python是解释型语言,它的源码都是以明文形式存放的,不过这并不算是一个缺点,如果项目要求源代码必须是加密的,那一开始就不应该用Python去实现。

3)线程不能利用多CPU问题

这是Python被人们诟病最多的一个缺点,GIL(Global Interpreter Lock,全局解释器锁)是计算机程序设计语言解释器用于同步线程的工具,使得任何时刻仅有一个线程在执行。Python的线程是操作系统的原生线程,在Linux上为Pthread,在Windows上为Win thread,完全由操作系统调度线程的执行。一个Python解释器进程内有一条主线程,以及多条用户程序的执行线程。即使在多核CPU平台上,由于GIL的存在,所以禁止多线程的并行执行。

1.1.3 Python语言的应用领域

Python越来越受欢迎,用户数量每年都大幅度增长的原因在于Python逐渐成为所有IT技术的首选语言。几乎所有的IT领域,包括Web研发、云计算(AWS、OpenStack、VMware、Google云、Oracle云等)、基础设施自动化、软件测试、移动端测试、大数据和Hadoop、数据科学等,都将Python作为首选编程语言。像神经网络、智能算法、数据分析、图像处理、科学计算等更需要金字塔式顶尖人才!目前Python的主要应用领域如图1-2所示。

Python可以应用于众多领域,如数据分析、组件集成、网络服务、图像处理、数值计算和科学计算等。目前,业内几乎所有大中型互联网企业都在使用Python,如YouTube、Dropbox、BT、Quora、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、腾讯以及美团等。

图1-2 Python应用领域