Python程序设计与算法基础教程

Python程序设计与算法基础教程
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
出版社: 清华大学出版社
2017-07
版次: 1
ISBN: 9787302466833
定价: 59.00
装帧: 其他
开本: 32开
纸张: 胶版纸
页数: 399页
字数: 648千字
  • 本教程集教材、练习册、上机指导于一体,基于Windows 10和Python 3.5.2构建Python开发平台,阐述Python语言的基础知识,以及使用Python语言的实际开发应用实例,具体内容包括:Python概述、Python语言基础、程序流程控制、常用内置数据类型、系列数据类型、输入和输出、错误和异常处理、函数、类和对象、模块和客户端、算法与数据结构基础、图形用户界面、图形绘制、数值日期和时间处理、字符串和文本处理、文件、数据库访问、网络和Web编程、多线程编程以及系统管理等。

      本教程作者结合多年的程序设计、系统开发以及授课经验,由浅入深、循序渐进地介绍Python程序设计语言,让读者能够较为系统全面地掌握程序设计的理论和应用。

      本教程可以作为高等学校各专业的计算机程序设计教材,同时也可作为广大程序设计开发者、爱好者的自学参考书。 第1章  Python概述1

    1.1  Python语言概述1

    1.1.1  Python语言简介1

    1.1.2  Python语言的特点1

    1.1.3  Python语言的应用范围2

    1.2  Python语言版本和开发环境2

    1.2.1  Python语言的版本2

    1.2.2  Python语言的实现2

    1.2.3  Python语言的集成开发环境3

    1.3  下载和安装Python3

    1.3.1  下载Python3

    1.3.2  安装Python4

    1.3.3  安装和管理Python扩展包4

    1.4  使用Python解释器解释执行Python程序6

    1.4.1  运行Python解释器6

    1.4.2  运行Python集成开发环境7

    1.5  使用文本编辑器和命令行编写和执行Python源文件程序8

    1.5.1  编写Hello World程序9

    1.5.2  Hello World程序(hello.py)源代码分析10

    1.5.3  运行Python源代码程序10

    1.5.4  命令行参数11

    1.6  使用集成开发环境IDLE编写和执行Python源文件程序12

    1.6.1  使用IDLE编写程序12

    1.6.2  使用IDLE编辑程序13

    1.7  在线帮助和相关资源13

    1.7.1  Python交互式帮助系统13

    1.7.2  Python文档16

    1.7.3  Python官网17

    1.7.4  Python扩展库索引(PyPI)17

    复习题18

    上机实践19

    第2章  Python语言基础20

    2.1  Python程序概述20

    2.1.1  引例20

    2.1.2  Python程序构成20

    2.2  Python对象和引用21

    2.2.1  Python对象概述21

    2.2.2  使用字面量创建实例对象21

    2.2.3  使用类对象创建实例对象22

    2.2.4  数据类型22

    2.2.5  变量和对象的引用22

    2.2.6  Python是动态类型语言23

    2.2.7  Python是强类型语言24

    2.2.8  对象内存示意图24

    2.2.9  对象的值比较(==)和引用判别(is)25

    2.2.10  不可变对象(immutable)和可变对象(mutable)25

    2.3  标识符及其命名规则26

    2.3.1  标识符26

    2.3.2  保留关键字27

    2.3.3  Python预定义标识符27

    2.3.4  命名规则27

    2.4  变量和赋值语句28

    2.4.1  变量的声明和赋值28

    2.4.2  链式赋值语句28

    2.4.3  复合赋值语句29

    2.4.4  删除变量29

    2.4.5  系列解包赋值29

    2.4.6  常量30

    2.5  表达式和运算符30

    2.5.1  表达式的组成30

    2.5.2  表达式的书写规则31

    2.5.3  运算符概述31

    2.5.4  Python运算符及其优先级31

    2.6  语句32

    2.6.1  Python语句32

    2.6.2  Python语句的书写规则33

    2.6.3  复合语句及其缩进书写规则33

    2.6.4  注释语句34

    2.6.5  空语句pass34

    2.7  函数和模块34

    2.7.1  函数的创建和调用34

    2.7.2  内置函数35

    2.7.3  模块函数35

    2.7.4  函数API36

    2.8  类和对象36

    2.8.1  创建类对象36

    2.8.2  实例对象的创建和调用37

    2.9  模块和包37

    复习题37

    上机实践39

    第3章  程序流程控制41

    3.1  顺序结构41

    3.2  选择结构41

    3.2.1  分支结构的形式42

    3.2.2  单分支结构42

    3.2.3  双分支结构43

    3.2.4  多分支结构44

    3.2.5  if语句的嵌套45

    3.2.6  if语句典型示例代码46

    3.2.7  选择结构综合举例47

    3.3  循环结构48

    3.3.1  可迭代对象48

    3.3.2  range对象49

    3.3.3  for循环49

    3.3.4  while循环50

    3.3.5  循环的嵌套51

    3.3.6  break语句52

    3.3.7  continue语句53

    3.3.8  死循环(无限循环)54

    3.3.9  else子句55

    3.3.10  循环语句典型示例代码55

    3.3.11  循环结构综合举例56

    复习题57

    上机实践60

    第4章  常用内置数据类型64

    4.1  Python内置数据类型概述64

    4.1.1  数值数据类型64

    4.1.2  序列数据类型64

    4.1.3  集合数据类型65

    4.1.4  字典数据类型65

    4.1.5  NoneType、NotImplementedType和EllipsisType65

    4.1.6  其他数据类型65

    4.2  int数据类型(任意精度整数)65

    4.2.1  整型字面量66

    4.2.2  int对象66

    4.2.3  int对象的方法66

    4.2.4  整数的运算67

    4.3  float类型(有限精度浮点数)68

    4.3.1  浮点类型字面量68

    4.3.2  float对象68

    4.3.3  float对象的方法68

    4.3.4  浮点数的运算69

    4.4  complex类型(复数)70

    4.4.1  复数类型字面量70

    4.4.2  complex对象70

    4.4.3  complex对象属性和方法70

    4.4.4  复数的运算70

    4.5  bool数据类型(布尔逻辑值)71

    4.5.1  布尔值字面量71

    4.5.2  bool对象71

    4.5.3  逻辑运算符72

    4.6  str数据类型(字符串)73

    4.6.1  字符串字面量73

    4.6.2  字符串编码73

    4.6.3  转义字符73

    4.6.4  str对象74

    4.6.5  str对象属性和方法74

    4.6.6  字符串的运算75

    4.6.7  对象转换为字符串75

    4.6.8  字符串的格式化75

    4.7  比较关系运算和条件表达式76

    4.7.1  条件表达式76

    4.7.2  关系和测试运算符77

    4.8  算术运算符和位运算符78

    4.8.1  算术运算符78

    4.8.2  位运算符78

    4.9  混合运算和数值类型转换79

    4.9.1  隐式转换79

    4.9.2  显式转换(强制转换)79

    4.10  内置标准数学函数80

    4.10.1  内置数学运算函数80

    4.10.2  数制转换函数80

    复习题81

    上机实践84

    第5章  系列数据类型89

    5.1  Python系列数据概述89

    5.1.1  数组89

    5.1.2  系列数据类型89

    5.2  系列数据的基本操作90

    5.2.1  系列的长度、最大值、最小值、求和90

    5.2.2  系列的索引访问操作90

    5.2.3  系列的切片操作91

    5.2.4  系列的连接和重复操作92

    5.2.5  系列的成员关系操作92

    5.2.6  系列的比较运算操作93

    5.2.7  系列的排序操作94

    5.2.8  内置函数all()和any()94

    5.2.9  系列拆封94

    5.3  元组95

    5.3.1  使用元组字面量创建元组实例对象95

    5.3.2  使用tuple对象创建元组实例对象96

    5.3.3  元组的系列操作96

    5.4  列表96

    5.4.1  使用列表字面量创建列表实例对象96

    5.4.2  使用list对象创建元组实例对象97

    5.4.3  列表的系列操作97

    5.4.4  list对象的方法97

    5.4.5  列表解析表达式98

    5.5  字符串98

    5.5.1  字符串的系列操作98

    5.5.2  字符串编码99

    5.5.3  字符串格式化99

    5.6  字节系列102

    5.6.1  bytes常量102

    5.6.2  创建bytes对象102

    5.6.3  创建bytearray对象103

    5.6.4  bytes和bytearray的系列操作103

    5.6.5  字节编码和解码104

    复习题104

    上机实践106

    第6章  输入和输出108

    6.1  输入和输出概述108

    6.2  命令行参数108

    6.2.1  sys.argv与命令行参数108

    6.2.2  argparse模块和命令行参数解析109

    6.3  标准输入和标准输出函数110

    6.3.1  输入和输出函数110

    6.3.2  交互式用户输入111

    6.3.3  运行时提示输入密码112

    6.4  文件和文件对象112

    6.4.1  文件对象和open函数112

    6.4.2  文件的打开、写入、读取和关闭113

    6.4.3  with语句和上下文管理协议113

    6.5  标准输入、输出和错误流114

    6.5.1  标准输入、输出和错误流文件对象114

    6.5.2  读取任意长度的输入流115

    6.5.3  标准输入、输出和错误流重定向115

    6.6  重定向和管道116

    6.6.1  重定向标准输出到一个文件117

    6.6.2  重定向文件到标准输入117

    6.6.3  管道118

    6.6.4  过滤器119

    复习题121

    上机实践121

    第7章  错误和异常处理123

    7.1  程序的错误123

    7.1.1  语法错误123

    7.1.2  运行时错误123

    7.1.3  逻辑错误124

    7.2  异常处理125

    7.2.1  异常处理概述125

    7.2.2  内置的异常类125

    7.2.3  引发异常127

    7.2.4  捕获处理异常机制概述128

    7.2.5  Python虚拟机捕获处理异常128

    7.2.6  使用try…except…else…finally语句捕获处理异常128

    7.2.7  捕获异常的顺序129

    7.2.8  finally块和发生异常后的处理130

    7.2.9  自定义异常类130

    7.3  断言处理131

    7.3.1  断言处理概述131

    7.3.2  assert语句和AssertionError类131

    7.3.3  启用/禁用断言132

    7.4  程序的基本调试方法132

    7.4.1  语法错误的调试133

    7.4.2  运行时错误的调试133

    7.4.3  逻辑错误的调试134

    复习题134

    上机实践135

    第8章  函数137

    8.1  函数概述137

    8.1.1  函数的基本概念137

    8.1.2  函数的功能137

    8.1.3  Python函数分类137

    8.2  函数的声明和调用138

    8.2.1  函数对象的创建138

    8.2.2  函数的调用139

    8.2.3  作为对象的函数140

    8.2.4  Lamda表达式和匿名函数140

    8.2.5  函数的副作用141

    8.3  参数的传递141

    8.3.1  形式参数和实际参数141

    8.3.2  形式参数变量和对象引用传递142

    8.3.3  传递不可变对象的引用142

    8.3.4  传递可变对象的引用143

    8.3.5  可选参数143

    8.3.6  位置参数和命名参数144

    8.3.7  可变参数145

    8.3.8  强制命名参数145

    8.3.9  参数类型检查146

    8.4  函数的返回值146

    8.4.1  return语句和函数返回值146

    8.4.2  多条return语句147

    8.4.3  返回多个值148

    8.5  变量的作用域148

    8.5.1  全局变量148

    8.5.2  局部变量149

    8.5.3  全局语句global150

    8.5.4  非局部语句nonlocal151

    8.5.5  类成员变量151

    8.5.6  输出局部变量和全局变量151

    8.6  递归函数152

    8.6.1  递归函数的定义152

    8.6.2  递归函数的原理153

    8.6.3  递归函数需要注意的问题154

    8.6.4  递归函数的应用:最大公约数154

    8.6.5  递归函数的应用:汉诺塔155

    8.7  内置函数的使用156

    8.7.1  内置函数一览156

    8.7.2  eval函数156

    8.7.3  exec函数157

    8.7.4  compile函数157

    复习题157

    上机实践159

    第9章  类和对象161

    9.1  面向对象概念161

    9.1.1  对象的定义161

    9.1.2  封装161

    9.1.3  继承161

    9.1.4  多态性161

    9.2  类对象和实例对象162

    9.2.1  类对象162

    9.2.2  实例对象162

    9.3  属性163

    9.3.1  实例属性163

    9.3.2  类属性164

    9.3.3  私有属性和公有属性164

    9.3.4  @property装饰器165

    9.3.5  特殊属性167

    9.3.6  自定义属性167

    9.4  方法168

    9.4.1  实例方法168

    9.4.2  静态方法169

    9.4.3  类方法170

    9.4.4  __init__方法(构造函数)和__new__方法171

    9.4.5  __del__方法(析构函数)172

    9.4.6  私有方法与公有方法173

    9.4.7  方法重载173

    9.5  继承174

    9.5.1  派生类174

    9.5.2  查看继承的层次关系175

    9.5.3  类成员的继承和重写176

    9.6  对象的特殊方法176

    9.6.1  对象的特殊方法概述176

    9.6.2  运算符重载与对象的特殊方法177

    9.6.3  @functools.total_ordering装饰器179

    9.6.4  __call__方法和可调用对象179

    9.7  对象的引用、浅拷贝和深拷贝180

    9.7.1  对象的引用180

    9.7.2  对象的浅拷贝180

    9.7.3  对象的深拷贝181

    复习题181

    上机实践183

    第10章  模块和客户端185

    10.1  模块化程序设计的概念185

    10.1.1  模块化程序设计185

    10.1.2  模块的API185

    10.1.3  模块的实现186

    10.1.4  模块的客户端187

    10.1.5  模块化程序设计的优越性187

    10.2  模块的设计和实现188

    10.2.1  模块设计的一般原则188

    10.2.2  API设计188

    10.2.3  创建模块188

    10.2.4  模块的私有函数189

    10.2.5  模块的测试代码190

    10.2.6  编写模块文档字符串191

    10.2.7  按字节编译的.pyc文件192

    10.3  模块的导入和使用192

    10.3.1  导入模块和使用模块192

    10.3.2  导入模块中的成员192

    10.3.3  重新加载模块193

    10.3.4  动态代入模块193

    10.4  包194

    10.4.1  包的概念194

    10.4.2  创建包194

    10.4.3  包的导入和使用195

    10.5  模块的导入顺序195

    10.5.1  导入模块时的搜索顺序195

    10.5.2  模块搜索路径sys.path196

    10.5.3  dir()内置函数197

    10.6  命名空间与名称查找顺序198

    复习题198

    上机实践199

    第11章  算法与数据结构基础200

    11.1  算法及其性能分析200

    11.1.1  算法概述200

    11.1.2  算法的时间复杂度分析200

    11.1.3  增长量级201

    11.1.4  算法的空间复杂度分析202

    11.2  查找算法202

    11.2.1  顺序查找法202

    11.2.2  二分查找法204

    11.2.3  Python语言提供的查找算法205

    11.3  排序算法205

    11.3.1  冒泡排序法205

    11.3.2  选择排序法206

    11.3.3  插入排序法207

    11.3.4  归并排序法208

    11.3.5  快速排序法210

    11.3.6  Python语言提供的排序算法211

    11.4  常用数据结构211

    11.4.1  数据结构概述211

    11.4.2  常用的数据结构概述212

    11.4.3  Python的collections模块212

    11.5  数组213

    11.5.1  列表和数组213

    11.5.2  array.array对象和数组213

    11.6  栈和队列214

    11.6.1  栈的实现:使用列表214

    11.6.2  deque对象215

    11.6.3  deque作为栈216

    11.6.4  deque作为队列216

    11.7  集合217

    11.7.1  集合的定义217

    11.7.2  判断集合元素是否存在217

    11.7.3  集合的运算:并集、交集、差集和对称差集218

    11.7.4  集合的比较运算:相等、子集和超集218

    11.7.5  集合的长度、最大值、最小值、元素和219

    11.7.6  可变集合的方法219

    11.8  字典(映射)220

    11.8.1  对象的哈希值220

    11.8.2  字典的定义220

    11.8.3  字典的访问操作221

    11.8.4  字典的视图对象221

    11.8.5  判断字典键是否存在221

    11.8.6  字典对象的长度和比较221

    11.8.7  字典对象的方法222

    11.8.8  defaultdict对象222

    11.8.9  OrderedDict对象223

    11.8.10  ChainMap对象223

    11.8.11  Counter对象224

    11.9  collections模块的其他数据结构226

    11.9.1  namedtuple对象226

    11.9.2  UserDict、UserList和UserString对象227

    复习题227

    上机实践230

    第12章  图形用户界面233

    12.1  图形用户界面概述233

    12.1.1  tkinter233

    12.1.2  其他GUI库简介233

    12.2  tkinter概述234

    12.2.1  tkinter模块234

    12.2.2  图形用户界面构成234

    12.2.3  框架和GUI应用程序类235

    12.2.4  tkinter主窗口236

    12.3  几何布局管理器236

    12.3.1  pack几何布局管理器237

    12.3.2  grid几何布局管理器237

    12.3.3  place几何布局管理器239

    12.4  事件处理240

    12.4.1  事件类型240

    12.4.2  事件绑定240

    12.4.3  事件处理函数241

    12.5  常用组件242

    12.5.1  Label242

    12.5.2  LabelFrame242

    12.5.3  Button243

    12.5.4  Message244

    12.5.5  Entry245

    12.5.6  Text245

    12.5.7  Radiobutton247

    12.5.8  Checkbutton247

    12.5.9  Listbox250

    12.5.10  OptionMenu251

    12.5.11  Scale253

    12.5.12  Toplevel254

    12.5.13  ttk子模块控件254

    12.6  对话框255

    12.6.1  通用消息对话框255

    12.6.2  文件对话框256

    12.6.3  颜色选择对话框257

    12.6.4  通用对话框应用举例258

    12.6.5  简单对话框259

    12.7  菜单和工具栏260

    12.7.1  创建主菜单260

    12.7.2  创建上下文菜单262

    12.7.3  菜单应用举例263

    复习题265

    上机实践266

    第13章  图形绘制268

    13.1  Python绘图模块概述268

    13.2  基于tkinter的图形绘制269

    13.2.1  基于tkinter画布绘图概述269

    13.2.2  创建画布对象269

    13.2.3  绘制矩形270

    13.2.4  绘制椭圆270

    13.2.5  绘制圆弧271

    13.2.6  绘制线条271

    13.2.7  绘制多边形272

    13.2.8  绘制字符串273

    13.2.9  应用举例:函数图形273

    13.3  基于turtle模块的海龟绘图274

    13.3.1  海龟绘图概述274

    13.3.2  turtle模块概述274

    13.3.3  绘制正方形275

    13.3.4  绘制多边形275

    13.3.5  绘制圆形螺旋276

    13.3.6  递归图形277

    13.3.7  海龟绘图的应用实例278

    13.4  基于Matplotlib模块的绘图279

    13.4.1  Matplotlib模块概述279

    13.4.2  安装Matplotlib模块279

    13.4.3  使用Matplotlib模块绘图概述280

    13.4.4  绘制函数曲线280

    13.4.5  绘制多个图形281

    13.4.6  绘制直方图282

    复习题283

    上机实践284

    第14章  数值日期和时间处理286

    14.1  相关模块概述286

    14.1.1  数值处理的相关模块286

    14.1.2  日期和时间处理的相关模块286

    14.2  math模块和数学函数286

    14.2.1  math模块的API286

    14.2.2  math模块应用举例289

    14.3  cmath模块和复数数学函数290

    14.4  random模块和随机函数291

    14.4.1  种子和随机状态291

    14.4.2  随机整数292

    14.4.3  随机系列293

    14.5  数值运算模块NumPy293

    14.5.1  数值运算模块的基本使用293

    14.5.2  创建数组294

    14.5.3  处理数组295

    14.5.4  数组应用举例295

    14.6  日期和时间处理295

    14.6.1  相关术语295

    14.6.2  时间对象296

    14.6.3  测量程序运行时间296

    14.6.4  日期对象297

    14.6.5  获取当前日期时间297

    14.6.6  日期时间格式化为字符串298

    14.6.7  日期时间字符串解析为日期时间对象298

    复习题299

    上机实践300

    第15章  字符串和文本处理303

    15.1  相关模块概述303

    15.1.1  字符串和文本处理的相关模块303

    15.1.2  字符串处理概述的常用方法303

    15.2  字符串处理的常用操作303

    15.2.1  字符串的类型判断303

    15.2.2  字符串大小写转换304

    15.2.3  字符串的填充、空白和对齐304

    15.2.4  字符串的测试、查找和替换305

    15.2.5  字符串的拆分和组合305

    15.2.6  字符串的翻译和转换306

    15.2.7  字符串应用举例306

    15.3  正则表达式307

    15.3.1  正则表达式语言概述307

    15.3.2  正则表达式引擎308

    15.3.3  普通字符和转义字符308

    15.3.4  字符类和预定义字符类309

    15.3.5  边界匹配符309

    15.3.6  重复限定符310

    15.3.7  匹配算法:贪婪和懒惰310

    15.3.8  选择分支311

    15.3.9  分组和向后引用311

    15.3.10  正则表达式的匹配模式313

    15.3.11  常用正则表达式313

    15.4  正则表达式模块re313

    15.4.1  匹配和搜索函数313

    15.4.2  匹配选项314

    15.4.3  正则表达式对象314

    15.4.4  匹配对象315

    15.4.5  匹配和替换316

    15.4.6  分割字符串316

    15.5  正则表达式应用举例316

    15.5.1  字符串包含验证316

    15.5.2  字符串查找和拆分317

    15.5.3  字符串替换和清除318

    15.5.4  字符串查找和截取318

    复习题319

    上机实践320

    第16章  文件322

    16.1  文件操作相关模块概述322

    16.2  文本文件的读取和写入322

    16.2.1  文本文件的写入322

    16.2.2  文本文件的读取323

    16.2.3  文本文件的编码324

    16.3  二进制文件的读取和写入325

    16.3.1  二进制文件的写入325

    16.3.2  二进制文件的读取326

    16.4  随机文件访问326

    16.5  内存文件的操作328

    16.5.1  StringIO和内存文本文件操作328

    16.5.2  BytesIO和内存文本文件操作328

    16.6  文件的压缩和解压缩329

    16.7  CSV文件格式的读取和写入329

    16.7.1  csv.reader对象和csv文件的读取330

    16.7.2  csv.writer对象和csv文件的写入330

    16.7.3  csv.DictReader对象和csv文件的读取331

    16.7.4  csv.DictWriter对象和csv文件的写入332

    16.7.5  csv文件格式化参数和Dialect对象332

    16.8  os模块和文件访问334

    16.8.1  文件描述符334

    16.8.2  使用os模块提供的函数访问文件334

    16.9  输入重定向和管道335

    16.9.1  FileInput对象335

    16.9.2  fileinput模块的函数336

    16.9.3  输入重定向337

    16.10  对象系列化338

    16.10.1  对象系列化概念338

    16.10.2  pickle模块和对象系列化338

    复习题339

    上机实践340

    第17章  数据库访问341

    17.1  数据库基础341

    17.1.1  数据库概念341

    17.1.2  关系数据库341

    17.2  Python数据库访问模块342

    17.2.1  通用数据库访问模块342

    17.2.2  专用数据库访问模块343

    17.2.3  SQLite数据库和sqlite3模块343

    17.3  使用sqlite3模块连接和操作SQLite数据库344

    17.3.1  访问数据库的典型步骤344

    17.3.2  创建数据库和表346

    17.3.3  数据库表的插入、更新和删除操作346

    17.3.4  数据库表的查询操作347

    复习题347

    上机实践348

    第18章  网络编程和通信349

    18.1  网络编程的基本概念349

    18.1.1  网络基础知识349

    18.1.2  TCP/IP简介349

    18.1.3  IP地址和域名350

    18.1.4  统一资源定位器URL351

    18.2  基于socket的网络编程352

    18.2.1  socket概述352

    18.2.2  创建socket对象353

    18.2.3  将服务器端socket绑定到指定地址上353

    18.2.4  服务器端socket开始侦听354

    18.2.5  连接和接收连接355

    18.2.6  发送和接收数据355

    18.2.7  简单TCP程序:Echo Server355

    18.2.8  简单UDP程序:Echo Server357

    18.2.9  UDP程序:Quote Server358

    18.3  基于urllib的网络编程359

    18.3.1  打开和读取URL网络资源359

    18.3.2  创建Request对象359

    18.4  基于http的网络编程360

    18.5  基于ftplib的网络编程360

    18.5.1  创建FTP对象361

    18.5.2  创建FTP_TLS对象362

    18.6  基于poplib和smtplib的网络编程363

    18.6.1  使用poplib接收邮件363

    18.6.2  使用smtplib发送邮件363

    复习题364

    上机实践365

    第19章  多线程编程367

    19.1  线程处理概述367

    19.1.1  进程和线程367

    19.1.2  线程的优缺点367

    19.2  创建和启动多线程368

    19.2.1  使用start_new_thread函数创建线程368

    19.2.2  使用Thread对象创建线程368

    19.2.3  自定义派生于Thread的对象370

    19.2.4  线程加入join()370

    19.2.5  用户线程和daemon线程371

    19.3  线程同步373

    19.3.1  线程同步处理373

    19.3.2  基于原语锁(Lock/RLock对象)的简单同步373

    19.3.3  基于条件变量(Condition对象)的同步和通信375

    复习题377

    上机实践378

     

    第20章  系统管理379

    20.1  系统管理相关模块379

    20.2  目录、文件和磁盘的基本操作379

    20.2.1  创建目录379

    20.2.2  临时目录和文件的创建379

    20.2.3  切换当前工作目录380

    20.2.4  目录内容列表380

    20.2.5  文件通配符和glob.glob函数380

    20.2.6  遍历目录和os.walk函数381

    20.2.7  判断文件/目录是否存在381

    20.2.8  测试文件类型382

    20.2.9  文件的日期及其大小382

    20.2.10  文件和目录的删除382

    20.2.11  文件和目录复制、重命名和移动383

    20.2.12  磁盘的基本操作383

    20.3  执行操作系统命令和运行其他程序383

    20.3.1  os.system函数383

    20.3.2  os.popen函数384

    20.3.3  subprocess模块384

    20.4  获取终端的大小385

    20.5  文件压缩和解压缩386

    20.5.1  shutil模块支持的压缩和解压缩格式386

    20.5.2  make_archive()和文件压缩386

    20.5.3  unpack_archive()函数和文件解压缩387

    20.6  configparser模块和配置文件387

    20.6.1  INI文件及INI文件格式387

    20.6.2  ConfigParser对象和INI文件操作388

    复习题389

    上机实践390

    附录  复习题参考答案391

    参考文献400
  • 内容简介:
    本教程集教材、练习册、上机指导于一体,基于Windows 10和Python 3.5.2构建Python开发平台,阐述Python语言的基础知识,以及使用Python语言的实际开发应用实例,具体内容包括:Python概述、Python语言基础、程序流程控制、常用内置数据类型、系列数据类型、输入和输出、错误和异常处理、函数、类和对象、模块和客户端、算法与数据结构基础、图形用户界面、图形绘制、数值日期和时间处理、字符串和文本处理、文件、数据库访问、网络和Web编程、多线程编程以及系统管理等。

      本教程作者结合多年的程序设计、系统开发以及授课经验,由浅入深、循序渐进地介绍Python程序设计语言,让读者能够较为系统全面地掌握程序设计的理论和应用。

      本教程可以作为高等学校各专业的计算机程序设计教材,同时也可作为广大程序设计开发者、爱好者的自学参考书。
  • 目录:
    第1章  Python概述1

    1.1  Python语言概述1

    1.1.1  Python语言简介1

    1.1.2  Python语言的特点1

    1.1.3  Python语言的应用范围2

    1.2  Python语言版本和开发环境2

    1.2.1  Python语言的版本2

    1.2.2  Python语言的实现2

    1.2.3  Python语言的集成开发环境3

    1.3  下载和安装Python3

    1.3.1  下载Python3

    1.3.2  安装Python4

    1.3.3  安装和管理Python扩展包4

    1.4  使用Python解释器解释执行Python程序6

    1.4.1  运行Python解释器6

    1.4.2  运行Python集成开发环境7

    1.5  使用文本编辑器和命令行编写和执行Python源文件程序8

    1.5.1  编写Hello World程序9

    1.5.2  Hello World程序(hello.py)源代码分析10

    1.5.3  运行Python源代码程序10

    1.5.4  命令行参数11

    1.6  使用集成开发环境IDLE编写和执行Python源文件程序12

    1.6.1  使用IDLE编写程序12

    1.6.2  使用IDLE编辑程序13

    1.7  在线帮助和相关资源13

    1.7.1  Python交互式帮助系统13

    1.7.2  Python文档16

    1.7.3  Python官网17

    1.7.4  Python扩展库索引(PyPI)17

    复习题18

    上机实践19

    第2章  Python语言基础20

    2.1  Python程序概述20

    2.1.1  引例20

    2.1.2  Python程序构成20

    2.2  Python对象和引用21

    2.2.1  Python对象概述21

    2.2.2  使用字面量创建实例对象21

    2.2.3  使用类对象创建实例对象22

    2.2.4  数据类型22

    2.2.5  变量和对象的引用22

    2.2.6  Python是动态类型语言23

    2.2.7  Python是强类型语言24

    2.2.8  对象内存示意图24

    2.2.9  对象的值比较(==)和引用判别(is)25

    2.2.10  不可变对象(immutable)和可变对象(mutable)25

    2.3  标识符及其命名规则26

    2.3.1  标识符26

    2.3.2  保留关键字27

    2.3.3  Python预定义标识符27

    2.3.4  命名规则27

    2.4  变量和赋值语句28

    2.4.1  变量的声明和赋值28

    2.4.2  链式赋值语句28

    2.4.3  复合赋值语句29

    2.4.4  删除变量29

    2.4.5  系列解包赋值29

    2.4.6  常量30

    2.5  表达式和运算符30

    2.5.1  表达式的组成30

    2.5.2  表达式的书写规则31

    2.5.3  运算符概述31

    2.5.4  Python运算符及其优先级31

    2.6  语句32

    2.6.1  Python语句32

    2.6.2  Python语句的书写规则33

    2.6.3  复合语句及其缩进书写规则33

    2.6.4  注释语句34

    2.6.5  空语句pass34

    2.7  函数和模块34

    2.7.1  函数的创建和调用34

    2.7.2  内置函数35

    2.7.3  模块函数35

    2.7.4  函数API36

    2.8  类和对象36

    2.8.1  创建类对象36

    2.8.2  实例对象的创建和调用37

    2.9  模块和包37

    复习题37

    上机实践39

    第3章  程序流程控制41

    3.1  顺序结构41

    3.2  选择结构41

    3.2.1  分支结构的形式42

    3.2.2  单分支结构42

    3.2.3  双分支结构43

    3.2.4  多分支结构44

    3.2.5  if语句的嵌套45

    3.2.6  if语句典型示例代码46

    3.2.7  选择结构综合举例47

    3.3  循环结构48

    3.3.1  可迭代对象48

    3.3.2  range对象49

    3.3.3  for循环49

    3.3.4  while循环50

    3.3.5  循环的嵌套51

    3.3.6  break语句52

    3.3.7  continue语句53

    3.3.8  死循环(无限循环)54

    3.3.9  else子句55

    3.3.10  循环语句典型示例代码55

    3.3.11  循环结构综合举例56

    复习题57

    上机实践60

    第4章  常用内置数据类型64

    4.1  Python内置数据类型概述64

    4.1.1  数值数据类型64

    4.1.2  序列数据类型64

    4.1.3  集合数据类型65

    4.1.4  字典数据类型65

    4.1.5  NoneType、NotImplementedType和EllipsisType65

    4.1.6  其他数据类型65

    4.2  int数据类型(任意精度整数)65

    4.2.1  整型字面量66

    4.2.2  int对象66

    4.2.3  int对象的方法66

    4.2.4  整数的运算67

    4.3  float类型(有限精度浮点数)68

    4.3.1  浮点类型字面量68

    4.3.2  float对象68

    4.3.3  float对象的方法68

    4.3.4  浮点数的运算69

    4.4  complex类型(复数)70

    4.4.1  复数类型字面量70

    4.4.2  complex对象70

    4.4.3  complex对象属性和方法70

    4.4.4  复数的运算70

    4.5  bool数据类型(布尔逻辑值)71

    4.5.1  布尔值字面量71

    4.5.2  bool对象71

    4.5.3  逻辑运算符72

    4.6  str数据类型(字符串)73

    4.6.1  字符串字面量73

    4.6.2  字符串编码73

    4.6.3  转义字符73

    4.6.4  str对象74

    4.6.5  str对象属性和方法74

    4.6.6  字符串的运算75

    4.6.7  对象转换为字符串75

    4.6.8  字符串的格式化75

    4.7  比较关系运算和条件表达式76

    4.7.1  条件表达式76

    4.7.2  关系和测试运算符77

    4.8  算术运算符和位运算符78

    4.8.1  算术运算符78

    4.8.2  位运算符78

    4.9  混合运算和数值类型转换79

    4.9.1  隐式转换79

    4.9.2  显式转换(强制转换)79

    4.10  内置标准数学函数80

    4.10.1  内置数学运算函数80

    4.10.2  数制转换函数80

    复习题81

    上机实践84

    第5章  系列数据类型89

    5.1  Python系列数据概述89

    5.1.1  数组89

    5.1.2  系列数据类型89

    5.2  系列数据的基本操作90

    5.2.1  系列的长度、最大值、最小值、求和90

    5.2.2  系列的索引访问操作90

    5.2.3  系列的切片操作91

    5.2.4  系列的连接和重复操作92

    5.2.5  系列的成员关系操作92

    5.2.6  系列的比较运算操作93

    5.2.7  系列的排序操作94

    5.2.8  内置函数all()和any()94

    5.2.9  系列拆封94

    5.3  元组95

    5.3.1  使用元组字面量创建元组实例对象95

    5.3.2  使用tuple对象创建元组实例对象96

    5.3.3  元组的系列操作96

    5.4  列表96

    5.4.1  使用列表字面量创建列表实例对象96

    5.4.2  使用list对象创建元组实例对象97

    5.4.3  列表的系列操作97

    5.4.4  list对象的方法97

    5.4.5  列表解析表达式98

    5.5  字符串98

    5.5.1  字符串的系列操作98

    5.5.2  字符串编码99

    5.5.3  字符串格式化99

    5.6  字节系列102

    5.6.1  bytes常量102

    5.6.2  创建bytes对象102

    5.6.3  创建bytearray对象103

    5.6.4  bytes和bytearray的系列操作103

    5.6.5  字节编码和解码104

    复习题104

    上机实践106

    第6章  输入和输出108

    6.1  输入和输出概述108

    6.2  命令行参数108

    6.2.1  sys.argv与命令行参数108

    6.2.2  argparse模块和命令行参数解析109

    6.3  标准输入和标准输出函数110

    6.3.1  输入和输出函数110

    6.3.2  交互式用户输入111

    6.3.3  运行时提示输入密码112

    6.4  文件和文件对象112

    6.4.1  文件对象和open函数112

    6.4.2  文件的打开、写入、读取和关闭113

    6.4.3  with语句和上下文管理协议113

    6.5  标准输入、输出和错误流114

    6.5.1  标准输入、输出和错误流文件对象114

    6.5.2  读取任意长度的输入流115

    6.5.3  标准输入、输出和错误流重定向115

    6.6  重定向和管道116

    6.6.1  重定向标准输出到一个文件117

    6.6.2  重定向文件到标准输入117

    6.6.3  管道118

    6.6.4  过滤器119

    复习题121

    上机实践121

    第7章  错误和异常处理123

    7.1  程序的错误123

    7.1.1  语法错误123

    7.1.2  运行时错误123

    7.1.3  逻辑错误124

    7.2  异常处理125

    7.2.1  异常处理概述125

    7.2.2  内置的异常类125

    7.2.3  引发异常127

    7.2.4  捕获处理异常机制概述128

    7.2.5  Python虚拟机捕获处理异常128

    7.2.6  使用try…except…else…finally语句捕获处理异常128

    7.2.7  捕获异常的顺序129

    7.2.8  finally块和发生异常后的处理130

    7.2.9  自定义异常类130

    7.3  断言处理131

    7.3.1  断言处理概述131

    7.3.2  assert语句和AssertionError类131

    7.3.3  启用/禁用断言132

    7.4  程序的基本调试方法132

    7.4.1  语法错误的调试133

    7.4.2  运行时错误的调试133

    7.4.3  逻辑错误的调试134

    复习题134

    上机实践135

    第8章  函数137

    8.1  函数概述137

    8.1.1  函数的基本概念137

    8.1.2  函数的功能137

    8.1.3  Python函数分类137

    8.2  函数的声明和调用138

    8.2.1  函数对象的创建138

    8.2.2  函数的调用139

    8.2.3  作为对象的函数140

    8.2.4  Lamda表达式和匿名函数140

    8.2.5  函数的副作用141

    8.3  参数的传递141

    8.3.1  形式参数和实际参数141

    8.3.2  形式参数变量和对象引用传递142

    8.3.3  传递不可变对象的引用142

    8.3.4  传递可变对象的引用143

    8.3.5  可选参数143

    8.3.6  位置参数和命名参数144

    8.3.7  可变参数145

    8.3.8  强制命名参数145

    8.3.9  参数类型检查146

    8.4  函数的返回值146

    8.4.1  return语句和函数返回值146

    8.4.2  多条return语句147

    8.4.3  返回多个值148

    8.5  变量的作用域148

    8.5.1  全局变量148

    8.5.2  局部变量149

    8.5.3  全局语句global150

    8.5.4  非局部语句nonlocal151

    8.5.5  类成员变量151

    8.5.6  输出局部变量和全局变量151

    8.6  递归函数152

    8.6.1  递归函数的定义152

    8.6.2  递归函数的原理153

    8.6.3  递归函数需要注意的问题154

    8.6.4  递归函数的应用:最大公约数154

    8.6.5  递归函数的应用:汉诺塔155

    8.7  内置函数的使用156

    8.7.1  内置函数一览156

    8.7.2  eval函数156

    8.7.3  exec函数157

    8.7.4  compile函数157

    复习题157

    上机实践159

    第9章  类和对象161

    9.1  面向对象概念161

    9.1.1  对象的定义161

    9.1.2  封装161

    9.1.3  继承161

    9.1.4  多态性161

    9.2  类对象和实例对象162

    9.2.1  类对象162

    9.2.2  实例对象162

    9.3  属性163

    9.3.1  实例属性163

    9.3.2  类属性164

    9.3.3  私有属性和公有属性164

    9.3.4  @property装饰器165

    9.3.5  特殊属性167

    9.3.6  自定义属性167

    9.4  方法168

    9.4.1  实例方法168

    9.4.2  静态方法169

    9.4.3  类方法170

    9.4.4  __init__方法(构造函数)和__new__方法171

    9.4.5  __del__方法(析构函数)172

    9.4.6  私有方法与公有方法173

    9.4.7  方法重载173

    9.5  继承174

    9.5.1  派生类174

    9.5.2  查看继承的层次关系175

    9.5.3  类成员的继承和重写176

    9.6  对象的特殊方法176

    9.6.1  对象的特殊方法概述176

    9.6.2  运算符重载与对象的特殊方法177

    9.6.3  @functools.total_ordering装饰器179

    9.6.4  __call__方法和可调用对象179

    9.7  对象的引用、浅拷贝和深拷贝180

    9.7.1  对象的引用180

    9.7.2  对象的浅拷贝180

    9.7.3  对象的深拷贝181

    复习题181

    上机实践183

    第10章  模块和客户端185

    10.1  模块化程序设计的概念185

    10.1.1  模块化程序设计185

    10.1.2  模块的API185

    10.1.3  模块的实现186

    10.1.4  模块的客户端187

    10.1.5  模块化程序设计的优越性187

    10.2  模块的设计和实现188

    10.2.1  模块设计的一般原则188

    10.2.2  API设计188

    10.2.3  创建模块188

    10.2.4  模块的私有函数189

    10.2.5  模块的测试代码190

    10.2.6  编写模块文档字符串191

    10.2.7  按字节编译的.pyc文件192

    10.3  模块的导入和使用192

    10.3.1  导入模块和使用模块192

    10.3.2  导入模块中的成员192

    10.3.3  重新加载模块193

    10.3.4  动态代入模块193

    10.4  包194

    10.4.1  包的概念194

    10.4.2  创建包194

    10.4.3  包的导入和使用195

    10.5  模块的导入顺序195

    10.5.1  导入模块时的搜索顺序195

    10.5.2  模块搜索路径sys.path196

    10.5.3  dir()内置函数197

    10.6  命名空间与名称查找顺序198

    复习题198

    上机实践199

    第11章  算法与数据结构基础200

    11.1  算法及其性能分析200

    11.1.1  算法概述200

    11.1.2  算法的时间复杂度分析200

    11.1.3  增长量级201

    11.1.4  算法的空间复杂度分析202

    11.2  查找算法202

    11.2.1  顺序查找法202

    11.2.2  二分查找法204

    11.2.3  Python语言提供的查找算法205

    11.3  排序算法205

    11.3.1  冒泡排序法205

    11.3.2  选择排序法206

    11.3.3  插入排序法207

    11.3.4  归并排序法208

    11.3.5  快速排序法210

    11.3.6  Python语言提供的排序算法211

    11.4  常用数据结构211

    11.4.1  数据结构概述211

    11.4.2  常用的数据结构概述212

    11.4.3  Python的collections模块212

    11.5  数组213

    11.5.1  列表和数组213

    11.5.2  array.array对象和数组213

    11.6  栈和队列214

    11.6.1  栈的实现:使用列表214

    11.6.2  deque对象215

    11.6.3  deque作为栈216

    11.6.4  deque作为队列216

    11.7  集合217

    11.7.1  集合的定义217

    11.7.2  判断集合元素是否存在217

    11.7.3  集合的运算:并集、交集、差集和对称差集218

    11.7.4  集合的比较运算:相等、子集和超集218

    11.7.5  集合的长度、最大值、最小值、元素和219

    11.7.6  可变集合的方法219

    11.8  字典(映射)220

    11.8.1  对象的哈希值220

    11.8.2  字典的定义220

    11.8.3  字典的访问操作221

    11.8.4  字典的视图对象221

    11.8.5  判断字典键是否存在221

    11.8.6  字典对象的长度和比较221

    11.8.7  字典对象的方法222

    11.8.8  defaultdict对象222

    11.8.9  OrderedDict对象223

    11.8.10  ChainMap对象223

    11.8.11  Counter对象224

    11.9  collections模块的其他数据结构226

    11.9.1  namedtuple对象226

    11.9.2  UserDict、UserList和UserString对象227

    复习题227

    上机实践230

    第12章  图形用户界面233

    12.1  图形用户界面概述233

    12.1.1  tkinter233

    12.1.2  其他GUI库简介233

    12.2  tkinter概述234

    12.2.1  tkinter模块234

    12.2.2  图形用户界面构成234

    12.2.3  框架和GUI应用程序类235

    12.2.4  tkinter主窗口236

    12.3  几何布局管理器236

    12.3.1  pack几何布局管理器237

    12.3.2  grid几何布局管理器237

    12.3.3  place几何布局管理器239

    12.4  事件处理240

    12.4.1  事件类型240

    12.4.2  事件绑定240

    12.4.3  事件处理函数241

    12.5  常用组件242

    12.5.1  Label242

    12.5.2  LabelFrame242

    12.5.3  Button243

    12.5.4  Message244

    12.5.5  Entry245

    12.5.6  Text245

    12.5.7  Radiobutton247

    12.5.8  Checkbutton247

    12.5.9  Listbox250

    12.5.10  OptionMenu251

    12.5.11  Scale253

    12.5.12  Toplevel254

    12.5.13  ttk子模块控件254

    12.6  对话框255

    12.6.1  通用消息对话框255

    12.6.2  文件对话框256

    12.6.3  颜色选择对话框257

    12.6.4  通用对话框应用举例258

    12.6.5  简单对话框259

    12.7  菜单和工具栏260

    12.7.1  创建主菜单260

    12.7.2  创建上下文菜单262

    12.7.3  菜单应用举例263

    复习题265

    上机实践266

    第13章  图形绘制268

    13.1  Python绘图模块概述268

    13.2  基于tkinter的图形绘制269

    13.2.1  基于tkinter画布绘图概述269

    13.2.2  创建画布对象269

    13.2.3  绘制矩形270

    13.2.4  绘制椭圆270

    13.2.5  绘制圆弧271

    13.2.6  绘制线条271

    13.2.7  绘制多边形272

    13.2.8  绘制字符串273

    13.2.9  应用举例:函数图形273

    13.3  基于turtle模块的海龟绘图274

    13.3.1  海龟绘图概述274

    13.3.2  turtle模块概述274

    13.3.3  绘制正方形275

    13.3.4  绘制多边形275

    13.3.5  绘制圆形螺旋276

    13.3.6  递归图形277

    13.3.7  海龟绘图的应用实例278

    13.4  基于Matplotlib模块的绘图279

    13.4.1  Matplotlib模块概述279

    13.4.2  安装Matplotlib模块279

    13.4.3  使用Matplotlib模块绘图概述280

    13.4.4  绘制函数曲线280

    13.4.5  绘制多个图形281

    13.4.6  绘制直方图282

    复习题283

    上机实践284

    第14章  数值日期和时间处理286

    14.1  相关模块概述286

    14.1.1  数值处理的相关模块286

    14.1.2  日期和时间处理的相关模块286

    14.2  math模块和数学函数286

    14.2.1  math模块的API286

    14.2.2  math模块应用举例289

    14.3  cmath模块和复数数学函数290

    14.4  random模块和随机函数291

    14.4.1  种子和随机状态291

    14.4.2  随机整数292

    14.4.3  随机系列293

    14.5  数值运算模块NumPy293

    14.5.1  数值运算模块的基本使用293

    14.5.2  创建数组294

    14.5.3  处理数组295

    14.5.4  数组应用举例295

    14.6  日期和时间处理295

    14.6.1  相关术语295

    14.6.2  时间对象296

    14.6.3  测量程序运行时间296

    14.6.4  日期对象297

    14.6.5  获取当前日期时间297

    14.6.6  日期时间格式化为字符串298

    14.6.7  日期时间字符串解析为日期时间对象298

    复习题299

    上机实践300

    第15章  字符串和文本处理303

    15.1  相关模块概述303

    15.1.1  字符串和文本处理的相关模块303

    15.1.2  字符串处理概述的常用方法303

    15.2  字符串处理的常用操作303

    15.2.1  字符串的类型判断303

    15.2.2  字符串大小写转换304

    15.2.3  字符串的填充、空白和对齐304

    15.2.4  字符串的测试、查找和替换305

    15.2.5  字符串的拆分和组合305

    15.2.6  字符串的翻译和转换306

    15.2.7  字符串应用举例306

    15.3  正则表达式307

    15.3.1  正则表达式语言概述307

    15.3.2  正则表达式引擎308

    15.3.3  普通字符和转义字符308

    15.3.4  字符类和预定义字符类309

    15.3.5  边界匹配符309

    15.3.6  重复限定符310

    15.3.7  匹配算法:贪婪和懒惰310

    15.3.8  选择分支311

    15.3.9  分组和向后引用311

    15.3.10  正则表达式的匹配模式313

    15.3.11  常用正则表达式313

    15.4  正则表达式模块re313

    15.4.1  匹配和搜索函数313

    15.4.2  匹配选项314

    15.4.3  正则表达式对象314

    15.4.4  匹配对象315

    15.4.5  匹配和替换316

    15.4.6  分割字符串316

    15.5  正则表达式应用举例316

    15.5.1  字符串包含验证316

    15.5.2  字符串查找和拆分317

    15.5.3  字符串替换和清除318

    15.5.4  字符串查找和截取318

    复习题319

    上机实践320

    第16章  文件322

    16.1  文件操作相关模块概述322

    16.2  文本文件的读取和写入322

    16.2.1  文本文件的写入322

    16.2.2  文本文件的读取323

    16.2.3  文本文件的编码324

    16.3  二进制文件的读取和写入325

    16.3.1  二进制文件的写入325

    16.3.2  二进制文件的读取326

    16.4  随机文件访问326

    16.5  内存文件的操作328

    16.5.1  StringIO和内存文本文件操作328

    16.5.2  BytesIO和内存文本文件操作328

    16.6  文件的压缩和解压缩329

    16.7  CSV文件格式的读取和写入329

    16.7.1  csv.reader对象和csv文件的读取330

    16.7.2  csv.writer对象和csv文件的写入330

    16.7.3  csv.DictReader对象和csv文件的读取331

    16.7.4  csv.DictWriter对象和csv文件的写入332

    16.7.5  csv文件格式化参数和Dialect对象332

    16.8  os模块和文件访问334

    16.8.1  文件描述符334

    16.8.2  使用os模块提供的函数访问文件334

    16.9  输入重定向和管道335

    16.9.1  FileInput对象335

    16.9.2  fileinput模块的函数336

    16.9.3  输入重定向337

    16.10  对象系列化338

    16.10.1  对象系列化概念338

    16.10.2  pickle模块和对象系列化338

    复习题339

    上机实践340

    第17章  数据库访问341

    17.1  数据库基础341

    17.1.1  数据库概念341

    17.1.2  关系数据库341

    17.2  Python数据库访问模块342

    17.2.1  通用数据库访问模块342

    17.2.2  专用数据库访问模块343

    17.2.3  SQLite数据库和sqlite3模块343

    17.3  使用sqlite3模块连接和操作SQLite数据库344

    17.3.1  访问数据库的典型步骤344

    17.3.2  创建数据库和表346

    17.3.3  数据库表的插入、更新和删除操作346

    17.3.4  数据库表的查询操作347

    复习题347

    上机实践348

    第18章  网络编程和通信349

    18.1  网络编程的基本概念349

    18.1.1  网络基础知识349

    18.1.2  TCP/IP简介349

    18.1.3  IP地址和域名350

    18.1.4  统一资源定位器URL351

    18.2  基于socket的网络编程352

    18.2.1  socket概述352

    18.2.2  创建socket对象353

    18.2.3  将服务器端socket绑定到指定地址上353

    18.2.4  服务器端socket开始侦听354

    18.2.5  连接和接收连接355

    18.2.6  发送和接收数据355

    18.2.7  简单TCP程序:Echo Server355

    18.2.8  简单UDP程序:Echo Server357

    18.2.9  UDP程序:Quote Server358

    18.3  基于urllib的网络编程359

    18.3.1  打开和读取URL网络资源359

    18.3.2  创建Request对象359

    18.4  基于http的网络编程360

    18.5  基于ftplib的网络编程360

    18.5.1  创建FTP对象361

    18.5.2  创建FTP_TLS对象362

    18.6  基于poplib和smtplib的网络编程363

    18.6.1  使用poplib接收邮件363

    18.6.2  使用smtplib发送邮件363

    复习题364

    上机实践365

    第19章  多线程编程367

    19.1  线程处理概述367

    19.1.1  进程和线程367

    19.1.2  线程的优缺点367

    19.2  创建和启动多线程368

    19.2.1  使用start_new_thread函数创建线程368

    19.2.2  使用Thread对象创建线程368

    19.2.3  自定义派生于Thread的对象370

    19.2.4  线程加入join()370

    19.2.5  用户线程和daemon线程371

    19.3  线程同步373

    19.3.1  线程同步处理373

    19.3.2  基于原语锁(Lock/RLock对象)的简单同步373

    19.3.3  基于条件变量(Condition对象)的同步和通信375

    复习题377

    上机实践378

     

    第20章  系统管理379

    20.1  系统管理相关模块379

    20.2  目录、文件和磁盘的基本操作379

    20.2.1  创建目录379

    20.2.2  临时目录和文件的创建379

    20.2.3  切换当前工作目录380

    20.2.4  目录内容列表380

    20.2.5  文件通配符和glob.glob函数380

    20.2.6  遍历目录和os.walk函数381

    20.2.7  判断文件/目录是否存在381

    20.2.8  测试文件类型382

    20.2.9  文件的日期及其大小382

    20.2.10  文件和目录的删除382

    20.2.11  文件和目录复制、重命名和移动383

    20.2.12  磁盘的基本操作383

    20.3  执行操作系统命令和运行其他程序383

    20.3.1  os.system函数383

    20.3.2  os.popen函数384

    20.3.3  subprocess模块384

    20.4  获取终端的大小385

    20.5  文件压缩和解压缩386

    20.5.1  shutil模块支持的压缩和解压缩格式386

    20.5.2  make_archive()和文件压缩386

    20.5.3  unpack_archive()函数和文件解压缩387

    20.6  configparser模块和配置文件387

    20.6.1  INI文件及INI文件格式387

    20.6.2  ConfigParser对象和INI文件操作388

    复习题389

    上机实践390

    附录  复习题参考答案391

    参考文献400
查看详情
好书推荐 / 更多
Python程序设计与算法基础教程
传统十论:本土社会的制度、文化与其变革
秦晖 著
Python程序设计与算法基础教程
翁达杰作品系列:英国病人(精装)
[加]迈克尔·翁达杰 著;丁骏 译
Python程序设计与算法基础教程
软件体的生命周期:特德·姜科幻小说集
[美]特德·姜
Python程序设计与算法基础教程
汉唐文学与文献论考
陈尚君 著
Python程序设计与算法基础教程
中国佛学源流略讲
吕澂 著
Python程序设计与算法基础教程
明清稿抄校本鉴定
陈先行、石菲 著
Python程序设计与算法基础教程
瓦檐下的旧器物
黄孝纪
Python程序设计与算法基础教程
索恩丛书·自由的流亡者:永失美国与大英帝国的东山再起(套装全2册)
马娅·亚桑诺夫(Maya Jasanoff) 著;马睿 译
Python程序设计与算法基础教程
维米尔
北寺 译 者;[英]路德维希·戈德沙伊德(Ludwig Goldscheider)
Python程序设计与算法基础教程
做工的人
林立青 著;赖小路 摄影
Python程序设计与算法基础教程
与绝迹之鸟的短暂邂逅
[美]本·方登 著
Python程序设计与算法基础教程
[日]吉田修一 Yoshida Shuichi 著;岳远坤 译