首页 > 图书中心 > 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  下载和安装Python 3

 1.3.1  下载Python 3

 1.3.2  安装Python 4

 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  空语句pass 34

2.7  函数和模块 34

 2.7.1  函数的创建和调用 34

 2.7.2  内置函数 35

 2.7.3  模块函数 35

 2.7.4  函数API 36

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和EllipsisType 65

 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  全局语句global 150

 8.5.4  非局部语句nonlocal 151

 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  模块的API 185

 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.path 196

 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  tkinter 233

 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  Label 242

 12.5.2  LabelFrame 242

 12.5.3  Button 243

 12.5.4  Message 244

 12.5.5  Entry 245

 12.5.6  Text 245

 12.5.7  Radiobutton 247

 12.5.8  Checkbutton 247

 12.5.9  Listbox 250

 12.5.10  OptionMenu 251

 12.5.11  Scale 253

 12.5.12  Toplevel 254

 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模块的API 286

 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  数值运算模块NumPy 293

 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  正则表达式模块re 313

 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  统一资源定位器URL 351

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 Server 355

 18.2.8  简单UDP程序:Echo Server 357

 18.2.9  UDP程序:Quote Server 358

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

版权所有(C)2019 清华大学出版社有限公司 京ICP备10035462号 京公网安备11010802013248号

联系我们 | 网站地图 | 法律声明 | 友情链接 | 盗版举报 | 人才招聘