Python程序设计-铁道出版社_第1页
Python程序设计-铁道出版社_第2页
Python程序设计-铁道出版社_第3页
Python程序设计-铁道出版社_第4页
Python程序设计-铁道出版社_第5页
已阅读5页,还剩313页未读 继续免费阅读

付费阅读全文

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

内容简介

随着Python扩展库不断发展壮大,Python在科研、电子、政府、数据分析、Web、金融、

图像处理、AI技术等各方面都有强大的类库、框架和解决方案。本书详细地介绍了Python语言

程序设计的基本原理和方法。全书共分14章,内容包括Python概述、Python数据类型与表达式、

程序流程控制、函数与模块、列表与元组、字典与集合、字符串与正则表达式、错误和异常处理、

文件及目录操作、面向对象程序设计、tkinter图形界面设计、网络爬虫入门、Python科学计算与

数据分析、数据可视化matplotlib等。

本书适合作为高等学校各专业的程序设计课程的教材,也可作为编程爱好者的自学参考

读物。

图书在版编目(CIP)数据

Python程序设计/苏虹等编著.—北京:中国铁道出版社

有限公司,2022.2

高等学校“十四五”规划教材

ISBN978-7-113-28817-4

Ⅰ.①P…Ⅱ.①苏…Ⅲ.①软件工具-程序设计-高等

学校-教材Ⅳ.①TP311.561

中国版本图书馆CIP数据核字(2022)第013054号

书名:Python程序设计

作者:苏虹王鹏远李萍孙占锋韩怿冰

策划:韩从付编辑部电话:(010)51873202

责任编辑:刘丽丽

封面设计:刘颖

责任校对:焦桂荣

责任印制:樊启鹏

出版发行:中国铁道出版社有限公司(100054,北京市西城区右安门西街8号)

网址:/51eds/

印刷:北京联兴盛业印刷股份有限公司

版次:2022年2月第1版2022年2月第1次印刷

开本:787mm×1092mm1/16印张:19.75字数:504千

书号:ISBN978-7-113-28817-4

定价:52.00元

版权所有侵权必究

凡购买铁道版图书,如有印制质量问题,请与本社教材图书营销部联系调换。电话:(010)63550836

打击盗版举报电话:(010)63549461

前言

Python语言是当下非常热门的一种编程语言。2021年10月,语言流行指数的编译

器TIOBE编程语言排行榜将Python语言评选为最受欢迎的编程语言,20年来首次将其

置于Java、C和JavaScript之上。随着Python扩展库的不断发展壮大,Python在科研、

电子、政务、数据分析、Web、金融、图像处理、AI技术等各方面都有强大的类库、框

架和解决方案,以至有了“已经没有任何语言能够动摇Python在今后生产、生活中的核

心语言地位”的说法。国家这两年对人工智能、大数据的重视,更大大地促进了Python

语言在国内的发展。

对于非计算机专业的学生来说,用Python作为程序设计语言启蒙是非常好的选择。

Python语言的优势在于比C++/Java等传统静态语言更具有实用性,不局限在烦杂的语法

里,可以专注于程序设计思想及计算思维的训练。

本书的编者全部是一直工作于高等学校教学一线、承担程序设计课程教学多年的大

学教师,有着丰富的教学和编程经验。程序设计课程有着理论与实践紧密结合的特点。

程序不是看会的,而是动手编会的。学习程序设计的过程是一个学习者与教师、学习者

与教材交互的过程,这需要有一本好的教材,再遵照一定的学习规律来很好地完成。本

书的编写参考多个高等院校程序设计课程教学大纲,与教育部高等学校大学计算机课程

教学指导委员会对程序设计课程的要求保持高度一致,章节结构安排合理,内容层次分

明,从认识、了解、掌握、应用等几个层次,由浅入深、循序渐进地组织内容,有助于

学生快速掌握知识要点。书中的实例都是精心挑选和设计的,具有新颖性、代表性、典

型性,并且在Python3.9以上版本中全部调试通过。Python3.9以上版本是全国计算机等

级考试二级Python推荐使用的版本。

本书着重介绍核心语法,以培养编程能力为首要目标,力求较全面地介绍Python程

序设计语言的知识点,使本书成为学习者的第一本程序设计参考书。本书共分14章,将

Python语言的内容由浅入深、层次分明地呈现给读者。每个章节既有逻辑清晰的语法讲

解,又有丰富的编程实例,有助于培养、训练编程初学者的计算思维模式。

本书主要内容如下:

第1章Python概述,简要介绍了Python的发展、特点、版本,以及本书使用的Python开

发环境、简单Python程序的基本结构和语法规则,并且说明了编码的概念,这些都是后面章

节学习的前提。

第2章Python数据类型与表达式,介绍了Python程序设计语言的基本知识,着重介绍了

Python使用的各种数据类型、运算符、表达式及常用的系统函数和数据的输入/输出。本章知

识点多且琐碎、枯燥,但它是学习编程的基础。

第3章程序流程控制,介绍了选择结构、循环结构和复合语句,这些是结构化程序

设计的基本结构。

第4章函数与模块,介绍了函数的定义与调用、函数的参数传递、函数的返回值,

以及变量作用域、递归函数、内嵌函数、模块等基本概念,使读者能够综合使用函数来

解决实际问题,从而提高应用的模块性和代码重用性。

I

Python程序设计

第5章列表与元组,介绍了Python语言中列表和元组的创建、元素引用、相关内置

函数的操作、列表推导式和生成品推导式的使用等,并结合具体使用实例帮助读者理解。

第6章字典与集合,介绍了字典与集合的概念,以及字典与集合的创建、元素引用、

相关运算符与内置函数的操作、常用的方法等,并配有相关实例操作。

第7章字符串与正则表达式,介绍了字符串的创建、索引、编码、运算符和内置函

数对字符串的操作、字符串对象的常用方法等,还介绍了正则表达式的基本概念、元字

符、常用的正则表达式、正则表达式模块等,并以应用实例帮助读者进一步理解和使用

正则表达式。

第8章错误和异常处理,介绍了常见的程序错误及解决方法、异常处理的try-except

语句,以及断言处理的assert语句和AssertionError类。

第9章文件及目录操作,介绍了文件的概念以及文件的使用、读写操作、jieba库的

使用、CSV文件的读写操作,使读者了解Python中关于文件的操作。

第10章面向对象程序设计,第1~9章内容都是基于面向过程的编程知识,本章介

绍了面向对象程序设计的基本概念,介绍了类与对象的定义、创建和使用,还介绍了属

性和方法、继承和多态,并给出相应的面向对象的编程实例供读者理解学习。

第11章tkinter图形界面设计,介绍了Python中用于创建图形化用户界面的tkinter

库,介绍了如何创建Windows窗口、常用tkinter组件的使用以及Python事件处理,并用

实例帮助读者学习使用。

第12章网络爬虫入门,介绍了相关HTTP协议知识、urllib基本应用与爬虫案例、requests

基本操作与爬虫案例、BeautifulSoup基本操作与爬虫案例,给出多个案例帮助读者深入学习。

第13章Python科学计算与数据分析,介绍了NumPy科学计算库及其扩展库pandas

的基本使用。

第14章数据可视化,介绍了数据可视化的基本概念,以及matplotlib绘图库的基本使用。

以上各部分都可以独立教学,自成体系,读者可根据学习时间、专业情况、设计要

求适当选取章节进行阅读学习。

本书由郑州轻工业大学的苏虹、王鹏远、李萍、孙占锋、韩怿冰编著。各章编著

分工如下:第1、4、11章由王鹏远编著,第2、5、10章由苏虹编著,第3、6、8章

由李萍编著,第7、12章由韩怿冰编著,第9、13、14章由孙占锋编著。王鹏远负责

本书的架构计划,苏虹和孙占锋负责本书的统稿工作。本书的编写得到众多同行的鼎力

支持,在此一并表示感谢。本书的编写和出版过程得到了郑州轻工业大学和中国铁道出

版社有限公司的大力支持和帮助,在此由衷地向他们表示感谢。

由于学识所限,加之时间仓促,书中难免存在不妥和疏漏之处,恳请各位读者批评

指正。

编者

2021年10月

II

目录

第1章Python概述1

1.1Python简介1

1.1.1Python的由来与发展1

1.1.2Python的特点2

1.1.3Python的应用领域3

1.1.4Python的版本3

1.2Python开发环境4

1.2.1Python语言解释器的下载与安装4

1.2.2Python的开发环境介绍7

1.2.3标准库9

1.2.4模块和第三方库14

1.3Python基础15

1.3.1一个简单的Python程序15

1.3.2Python程序语法元素分析15

1.4字符编码19

1.4.1Unicode编码20

1.4.2UTF-821

1.4.3编码转换21

习题21

第2章Python数据类型与表达式24

2.1数据类型24

2.1.1数值类型24

2.1.2字符串26

2.1.3布尔类型31

2.1.4复合数据类型32

2.2变量与常量34

2.2.1变量34

2.2.2常量35

2.3运算符与表达式35

2.3.1算术运算符35

I

Python程序设计

2.3.2比较运算符36

2.3.3赋值运算符36

2.3.4位运算符37

2.3.5逻辑运算符38

2.3.6成员运算符38

2.3.7身份运算符38

2.3.8运算优先级39

2.3.9表达式39

2.4常用系统函数39

2.4.1常用内置函数40

2.4.2常用库函数(数学函数、随机数、时间等)41

2.5数据的输入/输出43

2.5.1标准输入/输出43

2.5.2格式化输出45

习题47

第3章程序流程控制49

3.1程序控制流程概述49

3.1.1条件50

3.1.2缩进与复合语句50

3.2选择结构51

3.2.1单分支选择结构51

3.2.2双分支选择结构51

3.2.3多分支选择结构52

3.2.4选择结构的嵌套54

3.2.5选择结构程序举例55

3.3循环结构56

3.3.1for循环57

3.3.2while循环59

3.3.3循环控制语句61

3.3.4循环中的else子句62

3.3.5循环的嵌套63

3.3.6循环结构程序举例64

习题66

第4章函数与模块67

4.1函数的定义与调用67

II

目录

4.1.1函数的定义67

4.1.2函数的调用69

4.1.3lambda表达式70

4.2函数的参数传递72

4.2.1Python函数参数的值传递机制72

4.2.2Python函数参数的引用传递74

4.2.3参数的类型77

4.3函数的返回值78

4.3.1指定返回值与隐含返回值78

4.3.2return语句位置与多条return语句79

4.3.3返回值类型80

4.4变量的作用域81

4.4.1Python的局部变量81

4.4.2Python的全局变量82

4.4.3获取指定作用域范围中的变量83

4.5递归函数84

4.6内嵌函数与闭包87

4.7装饰器88

4.8代码复用与模块化设计89

4.9Python模块及导入方法89

习题90

第5章列表与元组94

5.1序列94

5.1.1序列索引94

5.1.2序列切片95

5.1.3序列相加96

5.1.4序列相乘96

5.1.5序列成员检测97

5.1.6长度、最大值和最小值97

5.2列表98

5.2.1列表的创建、元素引用及删除99

5.2.2运算符对列表的操作100

5.2.3内置函数对列表的操作101

5.2.4列表对象的常用方法101

5.2.5列表的切片与遍历103

5.2.6列表推导式104

III

Python程序设计

5.3元组105

5.3.1元组的创建、元素引用与删除105

5.3.2元组的常用操作106

5.3.3生成器推导式108

5.3.4元组与列表的异同点109

5.4应用举例112

习题114

第6章字典与集合116

6.1字典116

6.1.1字典概述116

6.1.2字典的创建116

6.1.3字典元素的引用、修改及删除118

6.1.4运算符对字典的操作119

6.1.5内置函数对字典的操作121

6.1.6字典的常用方法121

6.1.7字典推导式127

6.1.8字典的遍历127

6.2集合128

6.2.1集合的创建与删除128

6.2.2集合的运算129

6.2.3内置函数对集合的操作131

6.2.4集合对象的常用方法131

6.2.5集合的遍历和推导式134

6.3应用举例135

习题137

第7章字符串与正则表达式139

7.1字符串139

7.1.1字符串的创建、索引及删除139

7.1.2字符串编码141

7.1.3运算符对字符串的操作142

7.1.4内置函数对字符串的操作142

7.1.5字符串的遍历与切片143

7.1.6字符串对象的常用方法145

7.1.7字符串常量147

7.2正则表达式148

IV

目录

7.2.1正则表达式语言概述148

7.2.2正则表达式元字符149

7.2.3常用的正则表达式150

7.2.4正则表达式模块151

7.3应用举例152

习题153

第8章错误和异常处理155

8.1程序的错误155

8.1.1语法错误155

8.1.2运行错误155

8.1.3逻辑错误156

8.2异常处理156

8.2.1异常概念156

8.2.2try-except语句158

8.2.3try-except语句的嵌套161

8.2.4使用as获取异常信息提示162

8.2.5使用raise语句抛出异常164

8.3断言处理164

8.3.1断言处理概述164

8.3.2assert语句和AssertionError类165

习题165

第9章文件及目录操作167

9.1文件概述167

9.2文件的打开与关闭167

9.2.1打开文件167

9.2.2关闭文件169

9.2.3上下文关联语句169

9.3文本文件的读写169

9.3.1读取文本文件169

9.3.2文本文件的写入171

9.3.3文件内移动172

9.3.4文本文件与jieba库173

9.4二进制文件的读/写174

9.4.1使用pickle模块读写二进制文件175

9.4.2使用struct模块读写二进制文件176

V

Python程序设计

9.5CSV文件的读写177

9.5.1CSV文件简介177

9.5.2读取CSV文件177

9.5.3写入CSV文件178

9.6os模块178

9.6.1常用的os模块命令179

9.6.2文件重命名与删除179

9.6.3文件夹操作179

9.7应用举例181

习题181

第10章面向对象程序设计182

10.1面向对象程序设计基础182

10.1.1面向过程与面向对象182

10.1.2面向对象的基本概念184

10.2类与对象184

10.2.1类的定义184

10.2.2对象的创建185

10.3属性185

10.3.1类属性、对象属性和实例属性185

10.3.2私有属性和公有属性187

10.4方法188

10.4.1对象方法188

10.4.2实例方法189

10.4.3类方法190

10.4.4私有方法与公有方法190

10.4.5静态方法191

10.5继承和多态192

10.5.1继承192

10.5.2多态195

10.6应用举例196

习题201

第11章tkinter图形界面设计203

11.1窗体控件布局203

11.1.1创建根窗体204

11.1.2几何布局管理器204

VI

目录

11.2常用的tkinter控件208

11.2.1常见控件概述208

11.2.2控件的共同属性209

11.2.3标签(Label)210

11.2.4按钮(Button)212

11.2.5单行文本框(Entry)和多行文本框(Text)213

11.2.6列表框(Listbox)214

11.2.7单选按钮(Radiobutton)和复选框(Checkbutton)215

11.2.8组合框(Combobox)218

11.2.9滑块(Scale)219

11.2.10滚动条(Scrollbar)221

11.2.11框架(Frame)223

11.2.12子窗体(Toplevel)225

11.3对话框225

11.3.1消息对话框(Messagebox)225

11.3.2输入对话框(Simpledialog)227

11.3.3文件对话框(Filedialog)229

11.3.4颜色选择对话框(Colorchooser)230

11.4菜单231

11.5Python事件处理235

11.5.1事件类型235

11.5.2事件绑定236

11.5.3事件处理函数236

习题237

第12章网络爬虫入门239

12.1相关HTTP协议知识239

12.1.1HTTP基础239

12.1.2HTML基础240

12.1.3JavaScript基础242

12.2urllib基本应用与爬虫案例243

12.2.1urllib基本应用243

12.2.2urllib爬虫案例245

12.3requests基本操作与爬虫案例247

12.3.1requests基本操作247

12.3.2requests爬虫案例248

VII

Python程序设计

12.4BeautifulSoup基本操作与爬虫案例249

12.4.1BeautifulSoup基本应用249

12.4.2BeautifulSoup爬虫案例251

习题251

第13章Python科学计算与数据分析252

13.1NumPy252

13.1.1NumPy数组属性252

13.1.2数组的创建253

13.1.3切片和索引259

13.1.4数组常用操作261

13.1.5数组的分隔264

13.1.6通用函数266

13.1.7广播机制272

13.2pandas272

13.2.1数据结构273

13.2.2数据读写278

13.2.3数据处理282

13.2.4数据分析287

13.2.5数据可视化288

习题289

第14章数据可视化matplotlib290

14.1绘图入门290

14.2绘制多子图295

14.3绘制散点图298

14.4绘制饼状图299

14.5绘制柱状图300

14.6绘制三维图形301

习题302

参考文献303

VIII

第1章

Python概述

Python是由荷兰的GuidovanRossum于20世纪90年代初设计的,以易学易用等优点

被广泛应用于科学计算与统计、人工智能、网络接口、Web和Internet开发等领域,现已成

为最受欢迎的程序设计语言之一。本章将从Python的产生与发展开始,介绍Python的应用

领域、运行环境、标准库和字符编码以及Python程序的构成要素等相关内容。

【本章知识点】

Python的产生、发展及应用领域

Python的开发环境

Python的标准库

Python程序设计基础

Python的字符编码

1.1Python简介

1.1.1Python的由来与发展

Python的创始人是荷兰的吉多·范罗苏姆(Guidovon

Rossum,见图1-1)。1989年,为了打发圣诞节假期,

Guido开始编写Python语言的编译/解释器。Python来自

Guido所挚爱的电视剧MontyPython'sFlyingCircus(蒙

提·派森的飞行马戏,室内情景幽默剧,以当时的英国生活

为素材)。他希望这个新的叫做Python的语言能实现他的

编写程序设计语言功能全面、易学易用、可拓展的理念。

1991年,第一个Python编译/解释器诞生。它是用C

语言实现的,并能够调用C库(.so文件)。从诞生起,

Python已经具有了类(class)、函数(function)、异常处图1-1Python创始人吉多·范罗苏姆

理(exception)、表(list)和词典(dictionary)在内的核心数据类型和以模块(module)为

基础的拓展系统。

最初的Python完全由Guido本人开发。后来,Python得到了Guido同事的欢迎。他们迅

速地反馈使用意见,并参与到Python的改进工作中。Guido和一些同事组成了开发Python的

核心团队。他们将自己大部分的业余时间用于hackPython(也包括工作时间,因为他们将

Python用于工作)。随后,Python的应用拓展到了荷兰的数学和计算机研究所(Centrum

Wiskunde&Informatica,CWI)之外。Python将许多机器层面上的细节隐藏,交给编译器处理,

1

Python程序设计

并凸显出逻辑层面的编程思考。Python程序员可以花更多的时间用于思考程序的逻辑,而不

是具体的实现细节。这一特征吸引了广大程序员,因此Python开始流行。

自从2004年以后,Python的使用率呈线性增长。Python2于2000年10月16日发布,

稳定版本是Python2.7。Python3于2008年12月3日发布,不完全兼容Python2。2011年1

月,它被TIOBE编程语言排行榜评为2010年度语言。2021年10月,语言流行指数的编译器

TIOBE将Python评选为最受欢迎的编程语言,首次将其置于Java、C和JavaScript之上。

1.1.2Python的特点

Python语言是一种被广泛使用的高级通用脚本程序设计语言,具有区别于其他高级程序

设计语言的9个特点。

(1)易学、易读、易维护

Python有相对较少的关键字,结构简单,语法定义明确,简单易学;Python代码定义清

晰,易于阅读;Python的成功在于它的源代码容易维护。

(2)拥有强大的标准库

Python拥有一个强大的标准库。Python语言的核心只包含数字、字符串、列表、字典、

文件等常见数据类型和函数,而Python标准库提供了系统管理、网络通信、文本处理、数据

库接口、图形系统、XML处理等额外的功能。

(3)Python社区提供了大量的第三方模块

第三方模块使用方式与标准库类似。它们的功能涉及科学计算、人工智能、机器学习、

Web开发、数据库接口、图形系统等多个领域。

(4)Python是完全面向对象的语言

在Python中,函数、模块、数字、字符串都是对象,一切皆对象,完全支持继承、重载、

多重继承,支持重载运算符,也支持泛型设计。

(5)开源

Python是FLOSS(自由/开放源码软件)之一。简言之,用户可以自由地发布该软件的副

本,阅读其源代码,对之进行改动。在自由/开放源码软件所使用的各种许可证中,最为重要

的是通用性公开许可证(GeneralPublicLicense,GPL)。GPL同其他自由软件许可证一样,

许可社会公众享有:运行、复制软件的自由,发行传播软件的自由,获得软件源码的自由,

改进软件并将自己做出的改进版本向社会发行传播的自由。

(6)解释型语言

Python编写的程序不需要编译成二进制机器指令,可以直接从源代码运行程序。在计算

机内部运行Python程序时,Python解释器把源代码翻译成字节指令的中间形式,然后再根据

每条字节码指令执行对应的机器二进制代码。由于无需关心Python程序如何编译和连接程序,

使得使用Python开发变得更加简单。

(7)可扩展性和可嵌入性

如果需要使一段关键代码运行得更快或者希望某些算法不公开,就可以使用C或者C++

语言编写,然后在Python程序中调用,还可以将Python程序嵌入C或者C++程序中,从而提

供脚本功能。

(8)可移植性

由于Python的开源本质,Python已经被移植在许多平台上。如果能够避免使用依赖于系

2

第1章Python概述

统的特性,所有的Python程序无须修改就可以在众多平台上运行。

(9)规范的代码

Python采用强制缩进的方式使代码具有极强的可读性,不符合缩进规则的语法将无法执

行。如同C语言比较,Python程序行尾不需要使用分号,条件判断和循环体内的语句块也不

再需要使用花括号,诸如此类的代码规范,在一定程度上提高了开发者的工作效率。

1.1.3Python的应用领域

Python的应用领域非常广泛,主要应用领域有:

①网络接口:能方便进行系统维护和管理,是Linux的标志性语言之一,也是很多系统

管理员理想的编程工具。

②图形处理:有PIL、tkinter等图形库支持,能方便进行图形处理。

③数学处理:NumPy扩展提供大量与许多标准数学库的接口。

④文本处理:Python提供的re模块能支持正则表达式,还提供SGML、XML分析模块,

许多程序员利用Python进行XML程序的开发。

⑤数据库编程:程序员可通过遵循PythonDB-API(应用程序编程接口)规范的模块与

MicrosoftSQLServer、Oracle、Sybase、DB2、MySQL、SQLite等数据库通信。Python自带一个

Gadfly模块,提供了一个完整的SQL环境。

⑥网络编程:提供丰富的模块支持sockets编程,能方便快速地开发分布式应用程序。

很多大规模软件开发计划(例如Zope、Mnet及BitTorrent.Google)都在广泛地使用它。

⑦Web编程:Python是Web开发的程序设计语言之一,支持最新的XML技术。

⑧多媒体应用:Python的PyOpenGL模块封装了“OpenGL应用程序编程接口”,能进

行二维和三维图像处理。PyGame模块可用于编写游戏软件。

⑨PYMO引擎:PYMO全称为PythonMemoriesOff,是一款运行于SymbianS60V3、

Symbian3、S60V5、Android系统上的AVG游戏引擎。因其基于Python2.0平台开发,并且适

用于创建秋之回忆(MemoriesOff)风格的AVG游戏,故命名为PYMO。

1.1.4Python的版本

Python从诞生至今,历经多个版本。在Python的官网(网址/

downloads/)可以查看相关情况。截至目前,依然保留的版本主要是Python2.X和Python3.X。

Python的主要版本、发布时间及所有者和GPL兼容性如表1-1所示。

表1-1Python的主要历史版本

版本号发布时间所有者GPL是否兼容

0.9.0至1.21991—1995CWI是

1.3至1.5.21995—1999CNRI是

1.62000CNRI否

2.02000BeO否

1.6.12001CNRI否

2.12001PSF否

2.0.12001PSF是

3

Python程序设计

续表

版本号发布时间所有者GPL是否兼容

2.1.12001PSF是

2.1.22002PSF是

2.1.32002PSF是

2.2至2.6.02001—2020PSF是

3.02009PSF是

2.6.1至2.7.182008—2020PSF是

3.1至3.10.02009—2021PSF是

Python现在用得最多的是两个版本:Python2.X系列和Python3.X系列。Python1.X系列

在20世纪90年代非常成功,现在已不再维护。

向下兼容在计算机中是指在一个程序或者类库更新到较新的版本后,用旧的版本程序创

建的文档或系统仍能被正常操作或使用,或在旧版本的类库的基础上开发的程序仍能正常编

译运行的情况。例如较高档的计算机或较高版本的软件平台可以运行较为低档计算机或早期

的软件平台所开发的程序,如基于Pentium微处理器的PC兼容机可以运行早期在486上运行

的全部软件。向下兼容可以使用户在进行软件或硬件升级时,厂商不必为新设备或新平台重

新编制应用程序,以前的程序在新的环境中仍然有效。但Python同很多语言不同,它不支持

向后兼容,即Python2.X的程序不能在Python3.X上运行,虽然短期内带来升级函数库的巨

大代价,但从长期来看,由于不需要兼容旧版本,新版本有助于简化解释器功能,释放Python

发展的历史包袱。

从语言上来说,Python3.X比Python2.X要好,当开发一个新项目时,选择Python3.X是

一个明智的选择。所以建议大家把已完成的项目维护好,如果这个项目将用很长时间,要尽

早移植到Python3.X上。

1.2Python开发环境

Python可在Windows、Linux、Mac等平台下运行。本教材仅以Windows10平台为例,介

绍Python的安装与配置。

1.2.1Python语言解释器的下载与安装

在Windows平台下安装Python开发环境的步骤如下:

①访问/downloads/,选择Windows平台下的安装包,如图1-2所示。

图1-2在Python官网中选择Windows平台安装包

4

第1章Python概述

②单击图1-2中所示的Python3.10.0按钮

进行下载,下载后文件名为“python-3.10.0-

amd64.exe”,双击该文件进入Python的安装界

面,如图1-3所示。

图1-3中显示有两种安装方式。第一种,

采用默认安装方式。第二种,自定义安装方式,

用户可以自行选择软件的安装路径。这两种安装

方式均可,为配置方便,请单击选中“AddPython

图1-3选择Python安装方式

3.10toPATH”复选框。

③选择第二种安装方式。安装过程如图1-4(a)~(d)所示。本例选择安装在D盘的

ProgramFiles(x86)文件夹中。

(a)安装前,单击选中“AddPython3.10toPATH”复选框(b)选择“Customizeinstallation”后

(c)选择安装路径(d)Python安装进度展示

图1-4Python的安装过程

④Python安装成功后,出现如图1-5所示

界面。

值得注意的是,如果在安装准备阶段,没有

单击选中如图1-3所示的“AddPython3.10to

PATH”复选框,需要手动配置环境变量,具体

步骤如下:

①右击“此电脑”图标,在弹出的快捷菜

单中选择“属性”选项,如图1-6所示,在打开

的界面中选择右侧的“高级系统设置”选项,打图1-5Python安装成功的界面

5

Python程序设计

开如图1-7所示的“系统属性”对话框的“高级”选项卡。

图1-6“此电脑”属性界面

②在“系统属性”对话框的“高级”选项卡的右下角单击“环境变量”按钮,进入“环

境变量”对话框,如图1-8所示。先在用户变量列表中找到“Path”一项,为了不破坏其他

变量,请不要对其他内容做任何操作,单击对话框中间的“新建”按钮即可。

图1-7“系统属性”对话框的“高级”选项卡图1-8“环境变量”对话框

③在打开的“新建用户变量”对话框的“变量名”文本框中输入“Python”,“变量值”

文本框选择“浏览目录”定位到Python安装的文件夹即可,如图1-9所示。最后单击“确定”

按钮。

图1-9Python环境变量的设置

6

第1章Python概述

④使用【Win+R】组合键打开“运行”窗口,在“打开”文本框中输入“python”,确

认环境变量的配置成功,结果如图1-10所示。

图1-10Python环境变量配置成功

1.2.2Python的开发环境介绍

Python有很多开发环境,对于简单的Python程序使用IDLE或者PythonShell来编写非常

合适。而对于大型的项目来说,使用一款集成开发环境甚至是一款好的专用的代码编辑器将

会简化程序编写和管理工作。

1.IDLE

IDLE是Python自带的一个编辑器。当Python安装成功后,就可以看到IDLE了。IDLE

便于初学者创建、运行、测试Python程序。本教材中使用IDLE作为开发环境,对IDLE的使

用进行详细介绍。步骤如下:

①启动IDLE。如图1-11所示,在Windows10的“开始”菜单中找到IDLE,单击后即

可启动IDLE,启动界面如图1-12所示。

图1-11Windows10“开始”菜单下的IDLE

②启动IDLE就是一个PythonShell,通过它可以在IDLE内部执行Python命令,利用IDLE

的Shell与Python进行互动。新建一个文件,从“File”菜单中选择“NewFile”菜单项,这

样就可以在出现的窗口中输入程序代码了,如图1-13所示。

③创建好程序之后,从“File”菜单中选择“Save”保存程序,保存后的运行环境如图1-14

所示。从菜单中选择“Run”中的“RunModule”运行程序。运行结果如图1-15所示。

7

Python程序设计

图1-12IDLE启动界面图1-13创建Python程序的窗口

图1-14保存后的Python程序图1-15Python程序的运行结果

2.PyCharm

PyCharm是由JetBrains打造的一款专门面向于Python的全功能集成开发环境,拥有付费

版(专业版)和免费开源版(社区版),不论是在Windows、MacOSX系统,还是在Linux

系统中都支持PyCharm的快速安装和使用。PyCharm官方下载网址:/

pycharm/download/PyCharm。

PyCharm直接支持Python开发环境,打开一个新的文件然后就可以开始编写代码,也可

以在PyCharm中直接运行和调试Python程序,并且它支持源码管理和项目。

PyCharm的运行界面如图1-16所示。

图1-16PyCharm运行界面

8

第1章Python概述

3.Anaconda

Anaconda是由Anaconda公司为了方便使用Python进行数据科学研究而建立的一组软

件包,涵盖了数据科学领域常见的Python库,并且自带了专门用来解决软件环境依赖问题

的conda包管理系统。conda可以理解为一个工具,也是一个可执行命令,其核心功能是包

管理与环境管理。包管理与pip的使用类似,环境管理则允许用户方便地安装不同版本的

Python,并可以快速切换。

可以将Anaconda看作软件包管理工具,拥有安装、卸载、更新、查看、搜索等很多实

用的功能。简单的鼠标操作就可以实现包管理,而不用关心各种依赖和文件路径的情况,十

分方便快捷。Anaconda的下载网址:https://www.continuum.io/downloads,Linux、Mac、Windows

均支持。

Anaconda的运行界面如图1-17所示。

图1-17Anaconda运行界面

1.2.3标准库

Python标准库非常庞大,所提供的组件涉及范围十分广泛。这个库包含了多个以C语言

编写的内置模块,Python程序员必须依靠它们来实现系统级功能,例如文件I/O,此外还有

大量以Python编写的模块,提供了日常编程中许多问题的标准解决方案。有些模块经过专门

设计,通过将特定平台功能抽象化为平台中的API来鼓励和加强Python程序的可移植性。

Windows版本的Python安装程序通常包含整个标准库(如turtle、os、sys、random、time、

math等),往往还包含许多额外组件。对于类UNIX操作系统,Python通常会分成一系列的

软件包,因此可能需要使用操作系统所提供的包管理工具来获取部分或全部可选组件。

在这个标准库以外还存在成千上万且不断增加的其他组件(从单独的程序、模块、软件

包直到完整的应用开发框架),访问Python包索引即可获取这些第三方包。

在编写程序时,确定所需要使用函数库后可使用保留字import导入。使用import导入函

数库有两种方式。

第一种方式:

import<库名>

9

Python程序设计

此时,程序可调用库名中的所有库函数,使用库函数的格式如下:

<库名>.<函数名>(<函数参数>)

第二种方式:

from<库名>import<函数名,函数名,函数名,…,函数名>

from<库名>import*

其中*是通配符,表示所有的函数。

1.turtle库

turtle(海龟)库是Python语言的绘制图像的函数库,其绘制原理是有一只海龟在窗体正

中心,在画布上游走,走过的轨迹形成了绘制的图形,海龟由程序控制,可以自由改变颜色、

方向、宽度等。

(1)turtle绘图窗体

turtle绘图窗体语句如下:

turtle.setup(width,height,startx,starty)

函数功能:设置窗体大小。

参数含义:width、height是指窗体宽和高,输入宽和

高为整数时,表示像素;为小数时,表示占据计算机屏幕

的比例。(startx,starty)这一坐标表示矩形窗口左上角顶点的

位置,如果为空,则窗口位于屏幕中心。4个参数中后两

个参数非必选参数。

turtle的空间坐标系如图1-18所示。图1-18turtle的空间坐标系

(2)画笔控制

在画布上,默认有一个坐标原点为画布中心的坐标轴,坐标原点上有一只面朝x轴正方

向小海龟。这里我们描述小海龟时使用了两个词语:坐标原点(位置),面朝x轴正方向(方

向)。turtle绘图中,就是使用位置方向描述小海龟(画笔)的状态。

①turtle.penup()和turtle.pendown()

turtle.penup()

简写形式:turtle.pu()或者turtle.up()

功能:表示抬起画笔,海龟在飞行,无参数。

turtle.pendown()

简写形式:turtle.pd()或者turtle.down()

功能:表示画笔落下,海龟在爬行,无参数。

②turttle.pensize(width)

别名:turtle.width(width)

功能:表示画笔的宽度。

参数:wi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论