第1章
Python概述
Chapter1
Python是一种解释型、跨平台、面向对象的计算机程序设计语言,具有开源性、易学
性、可移植性、可扩展性和支持丰富类库等特点。Python凭借扩展性强、第三方库丰富和
免费开源等特点,在机器学习、数据挖掘、人工智能等领域有着很大优势,前景非常值得
期待。

1.1 
Python语言简介
目前,Python是一种知名度高、影响力大、应用广泛的主流编程语言。

1.1.1 
Python 
的诞生
Python语言是荷兰首都阿姆斯特丹(Amsterdam)的多·范·罗苏姆(Guidovan 
Rosum)开发的。他出生于1956年1月31日,1982年他在阿姆斯特丹大学获得数学和
计算机科学硕士学位。1989年12月圣诞节期间,33岁的他在阿姆斯特丹为了打发圣诞
节的无趣,决心开发一个新的脚本解释程序。之所以选中Python(大蟒蛇)作为该编程语
言的名字,是取自英国20世纪70年代首播的电视喜剧片《蒙提· 派森的飞行马戏团》
(MontyPython..sFlyingCircus)。他希望这个新的叫作Python的语言,能实现他的理
念,即开发一种介于C和Shel 
之间,功能全面、易学易用并可拓展的语言。他用3个月
的时间做出原型。1991年,第一个Python编译器(同时也是解释器)诞生,它是用C语言
实现的,并能够调用C库(o文件)。Pytocas)、fnton)、

shn最初就具有类(l函数(uci异常
处理(ecpto包括列ls和词典(itoay) 并包括模块

xein), 表((.) it) dcinr在内的核心数据类型,
(module)为基础的拓展系统。

最初的Python完全由Guido一人开发。后来Python得到Guido同事的欢迎,他们
也参与进来对Python加以改进。Guido和同事组成了Python的核心团队。Python将
许多机器层面上的细节隐藏,交给编译器处理,并凸显出逻辑层面的编程思考。Python 
程序员可以有更多的时间用于思考程序的逻辑,而不是具体的实现细节。

后来罗苏姆在多个研究机构工作,这些机构包括在荷兰阿姆斯特丹的国家数学和计
算机科学研究学会(CWI),在马里兰州Gaithersburg的国家标准及技术研究所(NIST), 
以及维珍尼亚洲Reston的国家创新研究公司(CNRI )。


2
2005 年12 月,Guido加入Google。他用Python语言为Google写了面向网页的代
码浏览工具。

2002 年,在比利时布鲁塞尔举办的自由及开源软件开发者欧洲会议上,Guido获得
了由自由软件基金会颁发的2001 年自由软件进步奖。2003 年5月,Guido获得了荷兰
UNIX 用户小组奖。2006 年,他被美国计算机协会(ACM)认定为著名工程师。

2011 年1月,Python被TIOBE 编程语言排行榜评为2010 年度语言。自从2004 年
以后,Python的使用率呈线性增长。目前Python已经成为最受欢迎的计算机语言之一。
2019 年10 月30 日,63 岁的Guido宣布退休。

1.1.2 
Python 
的优缺点
1.Python的优点
(1)Python的定位是“优雅”“明确”“简单”,所以Python程序看上去简单易懂,初学
者学Python不但入门容易,而且深入学习后可以编写非常复杂的程序。

(2)开发效率非常高。Python有非常强大的第三方库,基本上想通过计算机实现的
各种功能在Python官方库里都能找到。开发项目时直接下载并调用一些库文件,然后
在基础库的基础上再进行编程,从而大幅缩短了开发周期,避免了重复性劳动。
(3)Python是面向对象的高级语言,支持将代码封装在对象中的编程技术。
(4)Python是解释型语言,在开发过程中没有编译环节。
(5)Python是交互式语言,可以在Python提示符后直接互动执行代码。

(6)免费、开源是Python被广泛使用的原因之一,程序员可以免费使用许多程序,而
不存在版权问题。
Py
(7)基于其开放源代码的特性,thon已经被移植(也就是使其工作)到许多平台。
(8)有较好的可扩展性。如果需要一段运行很快的关键代码,或者是想要编写一些
不愿开放的算法,可以使用C或C++完成那部分程序,然后在Python程序中调用。
(9)Python提供所有主要商业数据库的接口。
(10)Python支持GUI(graphicaluserinterface,图形用户界面), 可以创建并移植到

许多系统中进行调用。

2.Python的缺点
(1)代码不能加密。因为Python是解释型语言,它的源代码都是以明文形式存放的
(不过这也许不能算是一个缺点)。
(2)对多线程支持度不高。
(3)速度慢。Python相对C语言要慢得多,但大多数用户是感觉不到的。
(4)Python作为解释型动态语言,通常需要程序员自查代码安全。而Java和C等静
态类型语言,这些问题会在编译时检查出来。

(5)缺少其他高级语言具备的一些功能。为了增加相关功能,Python通过变通的方
式实现,从而导致代码变得复杂。

3
(6)由于Python是由许多业余人士逐渐丰富并完善的语言,相对Java、C#等语言, 
缺乏整体设计,造成规范繁杂、混乱。
1.1.3 
Python 
的应用领域
(1)系统编程。Python提供API(applicationprograminterface,应用程序接口),能
方便地进行系统维护和管理,很多系统管理员认为它是理想的编程工具。
(2)图形界面开发。Python在图形界面开发方面很强大,可以用Tkinter/PyQT框
架开发各种桌面软件。
(3)科学计算。Python是一门很适合做科学计算的编程语言。随着NumPy、SciPy、
Matplotlib、Enthoughtlibrarys等众多程序库的开发,使Python越来越适合做科学计算
并绘制高质量的二维和三维图像。
(4)文本处理。Python提供的re模块支持正则表达式,还提供SGML 、XML分析模
块,许多程序员利用Python进行XML程序的开发。
(5)数据库编程。可通过PythonDB-API(数据库应用程序接口)规范的模块与
MicrosoftSQLServer、Oracle、Sybase、DB2 、MySQL 、SQLite等数据库通信。另外, 
Python自带一个Gadfly模块,提供了一个完整的SQL环境。
(6)网络编程。Python提供丰富的模块支持Socket编程,能方便快速地开发分布式
应用程序。
(7)Web开发。Python拥有很多免费函数库、免费Web网页模板系统,以及与Web 
服务器进行交互的库,可以实现Web开发,搭建Web框架。

(8)自动化运维。Python是运维人员广泛使用的语言,能满足绝大部分自动化运维
需求,包括前端和后端。
(9)金融分析。利用Numpy 、Pandas、Scipy等数据分析模块,可快速完成金融分析
工作。目前,Python是金融分析、量化交易领域使用最多的语言。
(10)多媒体应用。Python的PyOpenGL模块封装了“OpenGL应用程序编程接
口”,能进行二维和三维图像处理。
(11)网络爬虫。在爬虫领域,Python几乎处于霸主地位,提供了Scrapy 、Request、
BeautifulSoap、urlib等工具库,将网络中的一切数据作为资源,通过自动化程序进行有针
对性的数据采集以及处理。
(12)游戏开发。Python在网络游戏开发中也有很多应用。Python非常适合编写超
过1万行代码的项目,而且能够很好地把网游项目的规模控制在10万行代码以内。
(13)人工智能。NASA和Google早期大量使用Python,为Python积累了丰富的
科学运算库。当AI(artificialinteligence,人工智能)时代来临后,Python从众多编程语
言中脱颖而出,各种AI算法都基于Python编写。在神经网络、深度学习方面,Python都
能够找到比较成熟的程序包来加以调用。另外,Python是面向对象的动态语言,适用于
科学计算,使其在人工智能方面备受青睐。

4
1.1.4 
Python 
发展历史
1989年,Guido开始编写Python语言的编译器,他希望这个叫作Python的语言能
符合他的理想。

1991年,第一个Python编译器诞生。它是用C语言来实现的,并能够调用C语言的
库文件。Python从一出现便具有类、函数、异常处理等功能,包含表和词典在内的核心数
据类型,以及以模块为基础的拓展系统。

Python3相对Python早期的版本是一个较大的升级。Python3在设计的时候没有
考虑向下兼容,所以很多早期版本的Python程序无法在Python3上运行。
Pythn2.x系列的最后一个版本, 不再增加新功能,

o7是2.已经停止开发, 2020年终
止支持。对所有最新标准库的更新改进,只会在3.thon3比Python2

x的版本里出现。Py
更规范统一,去掉了一些不必要的关键字,且Pyx还在持续改进,所以推荐读者使

thon3.
thon3.用Py
据2020 
x 
年
。
4月TIOBE公布的编程语言排行榜看,前5位的是Jaa(73% )、
72% )、31% )、78% )、
v16.

C(16.to9.+(C#(74%),括号中的百分数是使用占比。

Pyhn(C+6.4.

2.
1

安装与配置

hoPty

n程序开发环境

1.2.1 
IDLE 
的下载与安装
hn程序的基本集成开发环境(

IDLE是开发PytoIDE),具备基本IDE的功能。IDLE 
可以被看作是简易版的集成开发环境,是学习Python不错的选择。下面介绍Windows 
下IDLE的安装。
o//www.too

(1)在浏览器地址栏中输入Pythn官网的下载地址htps:pyhn.rg/
downloads/,显示下载网页,如图1-1所示。由于网页经常改变,大家看到的网页可能不
同。单击“Dlato8.”将Pyhn安装文件下载到指定的文件夹中。
ownodPyhn3.3, to

(2)单击“运行”按钮,打开“打开文件-安全警告”对话框,单击“运行”按钮。
(3)显示Pyto如图12所示, AddPyhn3.oPATH”
hn安装向导,-选中“to8t复选框, 
会自动配置环境变量。InstalNow是默认安装选项,Customizeinstalation是安装时自
定义安装的文件。选择InstalNow的安装路径为C:\Users\Administrator\AppData\ 
Local\Programs\Python\Python38-32,这个安装路径在安装其他模块时不容易出错;再
单击InstalNow 。

(4)显示SetupProgres 
对话框,如图1-3所示。安装过程需要几分钟。
(5)显示Setupwassucesful对话框,如图1-4所示,表示安装完成。单击Close按
钮,关闭安装向导对话框。

5 


图1-
1 
选择要下载的版本


图1-
2 
安装向导对话框


6
图1-
3 
显示SetupProgres 
对话框


图1-
4 
Setupwassucesful对话框

1.2.2 
Python 
的菜单选择和启动
Python安装成功以后,在Windows的“开始”菜单
中展开“Pythn3.”文件夹,显示的菜单选项如图1-5

o8

所示。

1.IDLE(to832bt)

Pyhn3.-i
用“IDLE(Pyto832-bt)”选项可以打开图1-
5 
“开始”菜单中的“to8” 

hn3.iPyhn3.
Python自带的集成开发环境,它是一个PythonShel 
文件夹



7 
程序。Shell是“外壳”的意思,是一个通过输入文本与系统进行交互的程序。
单击IDLE(Python3.832-bit)选项,显示如图1-6所示的窗口。可以在IDLE 的
“> > >”提示符后输入Python指令,也可以创建Python程序文件。对于初学者,学习
Python通常使用这个IDLE窗口。稍后将介绍该IDLE的使用方法。
图1-6 Python的IDLE窗口
2.Python3.8(32-bit) 
单击Python3.8(32-bit)选项,可以打开Python命令行窗口,如图1-7所示。可以在
“> > >”提示符后输入Python命令。
图1-7 命令行窗口

8 
3.Pyto8Mauls(-it)

hn3.na32b
单击Pythn3.nas(32bt)选项,可以打开Pyton帮助文档,显示如图18所

o8Maul-ih

示的窗口。


图1-
8 
Python帮助文档

如果希望查看中文帮助文档,请在浏览器地址栏中输入htps://dospytoog/ 
zh-cn/3/,显示的内容如图1-9所示。
c.hn.r


图1-
9 
Python的在线中文帮助文档


9 
4.Python3.8ModuleDocs(32-bit) 
单击Python3.8ModuleDocs(32-bit)选项,将以内置服务器的方式打开Python的
模块文档,显示如图1-10所示的窗口。
图1-10 Python的模块文档
1.2.3 在IDLE 中编辑、运行程序
IDLE的基本功能有语法加亮、段落缩进、基本文本编辑、Tab键控制、调试程序等, 
可以方便地创建、运行、调试Python程序。下面介绍PythonIDLE的基本用法。
IDLE启动后的初始窗口中,窗口标题栏显示“Python3.8.4Shell”,通过它可以在
IDLE内部执行Python命令。除此之外,IDLE 带有一个交互式解释器,用来解释执行
Python语句;有一个编辑器,用来编辑Python程序(或者脚本);有一个调试器,用来调试
Python程序脚本。
IDLE(Python3.832-bit)是以GUI及菜单方式来执行Python命令。对于喜欢以命
令行方式来执行命令的程序员,可以启动Python3.8(32-bit)。
IDLE和Python命令行两种窗口中都以3个大于号“> > >”作为提示符,可以在该提
示符后输入命令或语句。在交互方式下,在这两种窗口中执行命令的方式是一样的。本
书使用IDLE环境来介绍Python程序的编程。
提示:本书约定,在所有章节给出的示例代码中,“> > >”符号都不需要输入,仅表示
该代码是在交互方式下运行;而不带该提示符的代码则表示是以程序的方式运行。
1.交互方式运行命令
如果使用交互式编程模式,直接在提示符“> > >”后输入相应的命令或语句,并按Enter

10 
键。如果正确执行了命令,在下一行将显示运行结果;否则将抛出异常,给出错误提示。
下面采用交互方式输入简单的语句,计算两个变量相加的值,输出内容显示在提示符
下方。在
“> > >”提示符后输入x=20,按Enter键;在下一行的“> > >”后输入y=30,按
Enter键;在新的下一行的“> > >”后输入x*y,按Enter键,则下一行显示x*y的计算结
果600。
在“> > >”后输入"Hello,world!",按Enter键,则在下一行显示“Hello,world!”。
在“> > >”后输入“2/0”,则给出错误提示,如图1-11所示。
图1-11 交互方式的运行
在交互方式下,在提示符“> > >”后输入相应的命令或语句,并按Enter键,就能显示
结果,非常简单。但是输入的命令和语句不能重复利用(可以选中语句后,按Ctrl+C组
合键复制,然后在最下面一行的“> > >”后按Ctrl+V 组合键粘贴),也不能保存到硬盘等
外存上。因此,交互方式仅仅用于执行最简单的代码,很少用于程序的输入和运行。
2.程序方式运行
把Python语句、命令等程序代码按照一定的业务逻辑编写成程序,并以文件的形式
保存到硬盘等外存中,这样的程序文件可以重复调用和编辑。在下面的例题中,介绍在
IDLE中如何进行程序的新建、输入、编辑、保存和运行。
【例1-1】 编写第一个程序,输出“Hello,world!”。 
#Filename: helloworld.py 
print("Hello, World!") 
x=20 
y=30 
z=x*y+100 
print(z)