图书介绍

Python程序设计教程pdf电子书版本下载

Python程序设计教程
  • 江红,余青松编著 著
  • 出版社: 清华大学出版社;北京交通大学出版社
  • ISBN:9787512120433
  • 出版时间:2014
  • 标注页数:358页
  • 文件大小:55MB
  • 文件页数:379页
  • 主题词:软件工具-程序设计-高等学校-教材

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
下载压缩包 [复制下载地址] 温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页

下载说明

Python程序设计教程PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如 BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第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语言的实现 3

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

1.3 下载和安装Python 3

1.3.1 下载Python 3

1.3.2 安装Python 4

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

1.4.1 运行Python解释器 5

1.4.2 运行Python集成开发环境 6

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

1.5.1 编写Hello world程序 7

1.5.2 Hello world程序(hello.py)源代码分析 8

1.5.3 运行Python源代码程序 8

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

1.6.1 使用IDLE编写Hello world程序 10

1.6.2 使用IDLE编辑程序 10

1.7 复习题 11

1.8 上机实践 12

第2章 Python语言基础 13

2.1 语句 13

2.1.1 Python语句 13

2.1.2 Python语句的书写规则 13

2.1.3 复合语句及其缩进书写规则 14

2.1.4 注释语句 14

2.1.5 空语句pass 15

2.2 表达式 15

2.2.1 表达式的组成 15

2.2.2 表达式的书写规则 15

2.3 运算符 15

2.3.1 运算符概述 15

2.3.2 Python运算符及其优先级 16

2.4 标识符及其命名规则 17

2.4.1 标识符 17

2.4.2 保留关键字 17

2.4.3 Python预定义标识符 18

2.4.4 命名规则 18

2.5 对象与引用 18

2.5.1 对象的类型(type)和标识(id) 18

2.5.2 对象引用 19

2.5.3 对象比较(==)和类型判别(is) 19

2.5.4 不可变对象(immutable)和可变对象(mutable) 20

2.6 变量和赋值 20

2.6.1 变量和数据类型 20

2.6.2 变量的声明和赋值 21

2.6.3 链式赋值语句 21

2.6.4 复合赋值语句 21

2.6.5 删除变量(del) 22

2.6.6 系列解包赋值 22

2.7 数据类型 23

2.7.1 NoneType,NotImplementedType和Ellipsis 23

2.7.2 数值数据类型 23

2.7.3 序列数据类型 24

2.7.4 集合数据类型 25

2.7.5 字典数据类型 25

2.7.6 其他数据类型 25

2.8 类的声明和对象的创建与调用 26

2.8.1 类的声明 26

2.8.2 对象的创建和调用 26

2.9 函数 27

2.9.1 函数的声明和调用 27

2.9.2 内置函数 28

2.9.3 模块函数和import语句 28

2.9.4 输入和输出函数 29

2.9.5 运行时提示输入密码 29

2.10 模块和包 30

2.11 Python文档注释 30

2.11.1 文档字符串 30

2.11.2 文档注释规范 31

2.12 复习题 32

2.13 上机实践 35

第3章 程序流程控制 36

3.1 bool数据类型和相关运算符 36

3.1.1 bool类型 36

3.1.2 关系和测试运算符 36

3.1.3 逻辑运算符 37

3.2 顺序结构 38

3.3 选择结构 39

3.3.1 分支结构的形式 39

3.3.2 单分支结构 39

3.3.3 双分支结构 40

3.3.4 多分支结构 41

3.3.5 if语句的嵌套 42

3.3.6 选择结构综合举例 43

3.4 循环结构 44

3.4.1 可迭代对象(iterable) 44

3.4.2 for循环 45

3.4.3 range对象 45

3.4.4 while循环 46

3.4.5 循环的嵌套 47

3.4.6 break语句 48

3.4.7 continue语句 49

3.4.8 else子句 50

3.5 异常处理 51

3.5.1 错误和异常 51

3.5.2 异常处理概述 51

3.5.3 内置的异常类 52

3.5.4 自定义异常类 53

3.5.5 引发异常 53

3.5.6 捕获处理异常try…except…finally 54

3.6 断言处理 56

3.6.1 断言处理概述 56

3.6.2 assert语句和AssertionError类 57

3.6.3 启用/禁用断言 57

3.7 复习题 58

3.8 上机实践 62

第4章 数值类型 64

4.1 int类型(任意精度整数) 64

4.1.1 整型常量 64

4.1.2 int对象 65

4.1.3 数制转换函数 65

4.1.4 整数的运算 65

4.2 float类型(有限精度浮点数) 65

4.2.1 浮点类型常量 66

4.2.2 float对象 66

4.2.3 浮点数的运算 66

4.3 Decimal类型(高精度浮点数) 67

4.3.1 浮点数运算误差 67

4.3.2 Decimal对象 67

4.3.3 Context对象 68

4.3.4 高精度浮点数的运算 71

4.4 Fraction类型(分数) 71

4.4.1 Fraction对象 71

4.4.2 分数的运算 72

4.5 complex类型(复数) 72

4.5.1 复数类型常量 72

4.5.2 创建complex对象 72

4.5.3 complex类型的方法 73

4.5.4 复数的运算 73

4.6 算术运算符和位运算符 73

4.6.1 算术运算符 73

4.6.2 位运算符 74

4.6.3 混合运算和数值类型转换 74

4.6.4 内置标准数学函数 75

4.7 mathh模块和数学函数 75

4.8 cmath模块和复数数学函数 78

4.9 random模块和随机函数 79

4.9.1 种子和随机状态 80

4.9.2 随机整数 80

4.9.3 随机系列 81

4.9.4 随机实值分布 82

4.10 相关模块 82

4.10.1 标准库中的相关模块 82

4.10.2 数值运算模块NumPy 83

4.10.3 科学计算模块SciPy 83

4.11 复习题 83

4.12 上机实践 84

第5章 系列:元组、列表和字符串 89

5.1 系列的基本操作 89

5.1.1 系列的索引访问操作 89

5.1.2 系列的切片操作 90

5.1.3 系列的连接和重复操作 91

5.1.4 系列的成员关系操作 91

5.1.5 系列的比较运算操作 92

5.1.6 系列的排序操作 92

5.1.7 系列长度、最大值、最小值、求和 93

5.1.8 内置函数all()和any() 93

5.1.9 系列拆封 93

5.2 元组 94

5.2.1 元组的定义 94

5.2.2 元组的基本操作 95

5.3 列表 95

5.3.1 列表的定义 95

5.3.2 列表的基本操作 95

5.3.3 list对象的方法 96

5.3.4 列表解析表达式 96

5.3.5 列表作为队列和栈 97

5.4 字符串 97

5.4.1 Unicode和字符常量 97

5.4.2 字符串常量 98

5.4.3 创建str对象 99

5.4.4 字符串的基本操作 99

5.4.5 str对象的方法 99

5.4.6 字符串编码 102

5.4.7 字符串格式化 103

5.5 字节系列 105

5.5.1 bytes常量 105

5.5.2 创建bytes对象 106

5.5.3 创建bytearrary对象 106

5.5.4 bytes和bytearrary的基本操作 107

5.6 复习题 107

5.7 上机实践 110

第6章 字典和集合类型 112

6.1 字典 112

6.1.1 对象的hash值 112

6.1.2 字典的定义 112

6.1.3 字典的访问操作 113

6.1.4 字典的视图对象 113

6.1.5 判断字典键是否存在 113

6.1.6 字典对象的长度和比较 114

6.1.7 字典对象的方法 114

6.2 集合 115

6.2.1 集合的定义 115

6.2.2 判断集合元素是否存在 115

6.2.3 集合的运算:并集、交集、差集和对称差集 116

6.2.4 集合的比较运算:相等、子集和超集 116

6.2.5 集合的长度、最大值、最小值、元素和 117

6.2.6 可变集合的方法 117

6.3 复习题 118

6.4 上机实践 119

第7章 文件和流I/O 121

7.1 文件和文件对象 121

7.1.1 文件和流概述 121

7.1.2 文件对象和open函数 121

7.1.3 with语句和上下文管理协议 122

7.2 文本文件的读取和写入 122

7.2.1 文本文件的写入 122

7.2.2 文本文件的读取 123

7.2.3 文本文件的编码 124

7.3 二进制文件的读取和写入 125

7.3.1 二进制文件的写入 125

7.3.2 二进制文件的读取 125

7.4 随机文件访问 126

7.5 CSV文件格式的读取和写入 127

7.5.1 csv.reader对象和csv文件的读取 127

7.5.2 csv.writer对象和csv文件的写入 128

7.5.3 csv.DictReader对象和csv文件的读取 128

7.5.4 csv.DictWriter对象和csv文件的写入 129

7.5.5 csv文件格式化参数和Dialect对象 130

7.6 os模块和文件访问 131

7.6.1 文件描述符 131

7.6.2 使用os模块提供的函数访问文件 131

7.7 对象系列化 132

7.7.1 对象系列化 132

7.7.2 pickle模块和对象系列化 132

7.8 输入重定向和管道 133

7.8.1 FileInput对象 133

7.8.2 fileinput模块的函数 134

7.8.3 输入重定向 135

7.9 复习题 136

7.10 上机实践 136

第8章 函数与函数编程 137

8.1 函数的声明和调用 137

8.2 参数的传递 138

8.2.1 形式参数和实际参数 138

8.2.2 可选参数 138

8.2.3 位置参数和命名参数 139

8.2.4 可变参数(VarArgs) 140

8.2.5 强制命名参数(Keyword-only) 140

8.3 函数的返回值 141

8.4 变量的作用域 142

8.4.1 全局变量 142

8.4.2 局部变量 142

8.4.3 类成员变量 142

8.4.4 全局语句global 142

8.4.5 非局部语句nonlocal 143

8.5 函数装饰器 144

8.5.1 装饰器的声明和使用 144

8.5.2 @functools.wraps装饰器 146

8.5.3 functools.update-wrapper函数 146

8.6 递归函数 147

8.7 作为对象的函数 148

8.8 Lambda表达式和匿名函数 148

8.9 operator模块和运算符函数 149

8.10 eval、exec和compile函数 149

8.10.1 运行上下文的局部变量和全局变量 149

8.10.2 eval函数和动态表达式的求值 150

8.10.3 exec函数和动态语句的执行 150

8.10.4 compile函数和动态语句的执行 150

8.11 functools模块和函数工具 150

8.11.1 partial对象 151

8.11.2 reduce函数 151

8.11.3 @functools.lru_cache装饰器 151

8.1 2复习题 152

8.13 上机实践 153

第9章 类和对象 155

9.1 面向对象概念 155

9.1.1 对象的定义 155

9.1.2 封装 155

9.1.3 继承 156

9.1.4 多态性 156

9.2 类和对象 156

9.2.1 类的声明 157

9.2.2 对象的创建和使用 157

9.3 属性 157

9.3.1 实例属性和类属性 158

9.3.2 私有属性和公有属性 160

9.3.3 @property装饰器 160

9.3.4 特殊属性(Special Attributes) 161

9.3.5 自定义属性(Custom Attributes) 162

9.4 方法 163

9.4.1 方法的声明和调用 163

9.4.2 _init_方法(构造函数)和_new_方法 164

9.4.3 _del_方法(析构函数) 164

9.4.4 实例方法、类方法(@classmethod)与静态方法(@staticmethod) 165

9.4.5 私有方法与公有方法 166

9.4.6 方法重载 167

9.4.7 运算符重载 168

9.4.8 @functools.total_ordering装饰器 169

9.4.9 特殊方法(Special Method) 170

9.4.10 _call_方法和可调用对象(callabe) 170

9.5 继承 171

9.5.1 派生类 171

9.5.2 类成员的继承和重写 172

9.6 对象的引用、浅拷贝和深拷贝 173

9.6.1 对象的引用 173

9.6.2 对象的浅拷贝 173

9.6.3 对象的深拷贝 174

9.7 复习题 174

9.8 上机实践 175

第10章 模块和包 177

10.1 模块的导入和使用 177

10.1.1 import语句 177

10.1.2 from…import语句 177

10.1.3 _import_()内置函数 178

10.1.4 模块搜索路径sys.path 178

10.1.5 dir()内置函数 178

10.2 模块的定义 179

10.2.1 创建模块 179

10.2.2 模块的名称 180

10.2.3 按字节编译的.pyc文件 181

10.3 包的定义 181

10.3.1 包的概念 181

10.3.2 创建包 182

10.3.3 包的导入和使用 182

10.4 命令行参数 182

10.4.1 sys.argv与命令行参数 182

10.4.2 argparse和命令行选项参数解析 183

10.5 终止程序运行时返回消息 185

10.6 复习题 185

10.7 上机实践 186

第11章 迭代器和生成器 187

11.1 迭代和可迭代对象 187

11.1.1 可迭代对象、迭代器和可迭代协议 187

11.1.2 可迭代对象的迭代:iter和next函数 188

11.1.3 可迭代对象的迭代:for语句 188

11.2 自定义可迭代对象和迭代器 189

11.3 生成器函数 189

11.4 反向迭代:reversed迭代器 190

11.5 生成器表达式 191

11.6 Python内置的可迭代对象 191

11.6.1 range可迭代对象 191

11.6.2 map迭代器和itertools.starmap迭代器 191

11.6.3 filter迭代器和itertools.filterfalse迭代器 192

11.6.4 zip迭代器和zip_longest迭代器 192

11.6.5 enumerate迭代器 193

11.7 itertools模块和迭代器函数 193

11.7.1 无穷系列迭代器 193

11.7.2 累计迭代器accumulate 194

11.7.3 级联迭代器chain 194

11.7.4 选择压缩迭代器compress 194

11.7.5 截取迭代器dropwhile和takewhile 194

11.7.6 切片迭代器islice 195

11.7.7 迭代器groupby 195

11.7.8 返回多个迭代器tee 195

11.7.9 组合迭代器combinations、combinations_with_replacement 195

11.7.1 0排列迭代器permutations 196

11.7.1 1笛卡儿积迭代器product 196

11.8 复习题 196

11.9 上机实践 198

第12章 数据结构和算法 200

12.1 ABC模块 200

12.1.1 collections.abc模块和抽象基类 200

12.1.2 collections.abc模块中的抽象基类 200

12.2 collections模块和容器类型 202

12.2.1 ChainMap对象 202

12.2.2 Counter对象 203

12.2.3 deque对象 203

12.2.4 defaultdict对象 205

12.2.5 OrderedDict对象 205

12.2.6 namedtuple对象 206

12.2.7 UserDict、UserList和UserString对象 207

12.3 array.array对象 207

12.3.1 array的定义 207

12.3.2 array对象的基本操作 208

12.3.3 array对象的方法 208

12.4 heapq模块和堆队列算法 209

12.4.1 堆(Heap)的基本概念 209

12.4.2 堆的基本操作 210

12.4.3 heapq模块中基于heap的通用函数 210

12.5 bisect模块和二分排序算法 211

12.6 复习题 211

12.7 上机实践 213

第13章 日期和时间处理 214

13.1 日期和时间处理概述 214

13.1.1 相关模块 214

13.1.2 相关术语 214

13.2 time模块 215

13.2.1 struct time对象 215

13.2.2 time模块中的常用函数 215

13.2.3 日期格式化字符串 216

13.3 datetime模块 217

13.3.1 date对象 218

13.3.2 tzinfo对象和timezone对象 219

13.3.3 time对象 220

13.3.4 datetime对象 220

13.3.5 timedelta对象 222

13.3.6 日期和时间的运算与比较 223

13.4 calendar模块 223

13.4.1 Calendar对象 223

13.4.2 TextCalendar对象和LocaleTextCalendar对象 224

13.4.3 HTMLCalendar对象和LocaleHTMLCalendar对象 225

13.4.4 calendar模块的属性和常用函数 226

13.5 复习题 227

13.6 上机实践 228

第14章 正则表达式 230

14.1 正则表达式语言 230

14.1.1 正则表达式语言概述 230

14.1.2 正则表达式引擎 230

14.1.3 普通字符和转义字符 231

14.1.4 字符类和预定义字符类 231

14.1.5 边界匹配符 232

14.1.6 重复限定符 232

14.1.7 匹配算法:贪婪和懒惰 233

14.1.8 选择分支 234

14.1.9 分组和向后引用 234

14.1.10 正则表达式的匹配模式 236

14.1.11 常用正则表达式 236

14.2 正则表达式模块re 236

14.2.1 匹配和搜索函数 236

14.2.2 匹配选项 237

14.2.3 正则表达式对象 237

14.2.4 匹配对象 238

14.2.5 匹配和替换 238

14.2.6 分割字符串 238

14.3 正则表达式应用举例 239

14.3.1 字符串包含验证 239

14.3.2 字符串查找和拆分 239

14.3.3 字符串替换和清除 240

14.3.4 字符串查找和截取 240

14.4 复习题 241

14.5 上机实践 242

第15章 多线程编程 243

15.1 线程处理概述 243

15.1.1 进程和线程 243

15.1.2 线程的优缺点 243

15.2 创建和启动多线 244

15.2.1 使用start_new_thread函数创建线程 244

15.2.2 使用Thread对象创建线程 244

15.2.3 自定义派生于Thread的对象 245

15.2.4 线程加入join() 246

15.2.5 用户线程和daemon线程 247

15.3 线程同步 248

15.3.1 线程同步处理 248

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

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

15.4 复习题 253

15.5 上机实践 253

第16章 图形用户界面应用程序 254

16.1 图形用户界面概述 254

16.1.1 tkinter 254

16.1.2 其他GUI库简介 254

16.2 tkinter概述 255

16.2.1 tkinter模块 255

16.2.2 图形用户界面构成 255

16.2.3 框架和GUI应用程序类 256

16.2.4 tkinter主窗口 257

16.3 几何布局管理器 257

16.3.1 pack几何布局管理器 258

16.3.2 grid几何布局管理器 259

16.3.3 place几何布局管理器 260

16.4 事件处理 261

16.4.1 事件类型 261

16.4.2 事件绑定 262

16.4.3 事件处理函数 263

16.5 组件概述 264

16.5.1 创建组件和设置属性 264

16.5.2 坐标系 265

16.5.3 大小单位(width和height) 265

16.5.4 颜色(background、foreground等) 265

16.5.5 字体(font) 266

16.5.6 停靠位置(anchor) 266

16.5.7 光标(cursor) 267

16.5.8 显示文本(text、textvariable、wraplength和justify) 267

16.5.9 位图(bitmap) 267

16.5.10 图像(image) 268

16.5.11 同时显示文本和位图/图像(compound) 268

16.5.12 3D显示样式(relief和overrelief) 269

16.5.13 设置组件的边框(borderwidth) 269

16.5.14 设置组件的填充(padx和pady) 269

16.5.15 组件的状态(state) 269

16.5.16 启用和禁用输入法 269

16.5.17 设置字符下划线位置(underline) 269

16.5.18 焦点(highlightbackground、highlightcolor等) 270

16.5.19 组件的数据绑定(textvariable、variable和listvariable) 270

16.5.20 组件id和名称 270

16.5.21 组件的通用方法 270

16.6 常用组件 271

16.6.1 标签Label 271

16.6.2 标签框架LabelFrame 271

16.6.3 按钮Button 272

16.6.4 消息Message 273

16.6.5 单行文本框Entry 274

16.6.6 多行文本框Text 275

16.6.7 单选按钮Radiobutton 277

16.6.8 复选框Checkbutton 278

16.6.9 列表框Listbox 280

16.6.10 选择项OptionMenu 282

16.6.11 移动滑块Scale 283

16.6.12 顶层窗口Toplevel 285

16.6.13 ttk子模块控件 286

16.7 对话框 286

16.7.1 通用消息对话框 286

16.7.2 文件对话框 288

16.7.3 颜色选择对话框 289

16.7.4 通用对话框应用举例 290

16.7.5 简单对话框 292

16.8 菜单和工具栏 293

16.8.1 菜单组件Menu 293

16.8.2 创建主菜单 294

16.8.3 创建上下文菜单 295

16.8.4 菜单应用举例 296

16.9 图形绘制 299

16.9.1 Canvas组件 299

16.9.2 Canvas上的对象 299

16.9.3 绘制矩形 301

16.9.4 绘制选项 302

16.9.5 绘制椭圆 305

16.9.6 绘制圆弧 305

16.9.7 绘制线条 306

16.9.8 绘制多边形 307

16.9.9 绘制位图 307

16.9.10 绘制图像 308

16.9.11 绘制字符串 308

16.9.12 绘制组件 309

16.10 复习题 310

16.11 上机实践 311

第17章 数据库访问 313

17.1 数据库基础 313

17.1.1 数据库概念 313

17.1.2 关系数据库 313

17.2 Python数据库访问模块 314

17.2.1 通用数据库访问模块 314

17.2.2 专用数据库访问模块 315

17.2.3 SQLite数据库和sqlite3模块 315

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

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

17.3.2 创建数据库和表 318

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

17.3.4 数据库表的查询操作 319

17.4 复习题 319

17.5 上机实践 319

第18章 网络编程和通信 320

18.1 网络编程的基本概念 320

18.1.1 网络基础知识 320

18.1.2 TCP/IP协议简介 321

18.1.3 IP地址和域名 322

18.1.4 统一资源定位器URL 322

18.2 基于socket模块的网络编程 323

18.2.1 socket概述 323

18.2.2 创建socket对象 324

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

18.2.4 服务器端socket开始侦听 325

18.2.5 连接和接收连接 326

18.2.6 发送和接收数据 326

18.2.7 简单TCP程序:Echo Server 326

18.2.8 简单UDP程序:Echo Server 327

18.2.9 UDP程序:Quote Server 329

18.3 基于urllib模块的网络编程 330

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

18.3.2 创建Request对象 330

18.4 基于http模块的网络编程 331

18.5 基于ftplib模块的网络编程 331

18.5.1 创建FTP对象 331

18.5.2 创建FTP_TLS对象 333

18.6 基于poplib和smtplib模块的网络编程 333

18.6.1 使用poplib接收邮件 333

18.6.2 使用smtplib发送邮件 334

18.7 复习题 335

18.8 上机实践 336

第19章 系统管理 337

19.1 目录、文件和磁盘的基本操作 337

19.1.1 创建目录 337

19.1.2 临时目录和文件的创建 337

19.1.3 切换当前工作目录 338

19.1.4 目录内容列表 338

19.1.5 文件通配符和glob.glob函数 338

19.1.6 遍历目录和os.walk函数 338

19.1.7 判断文件/目录是否存在 339

19.1.8 测试文件类型 339

19.1.9 文件的日期及其大小 339

19.1.10 文件和目录的删除 340

19.1.11 文件和目录复制、重命名和移动 340

19.1.12 磁盘的基本操作 340

19.2 执行操作系统命令和运行其他程序 341

19.2.1 os.system函数 341

19.2.2 os.popen函数 341

19.2.3 subprocess模块 341

19.3 获取终端的大小 342

19.4 文件压缩和解压缩 343

19.4.1 shutil模块支持的压缩和解压缩格式 343

19.4.2 make_archive()和文件压缩 343

19.4.3 unpack_archive()函数和文件解压缩 343

19.5 configparser模块和配置文件 344

19.5.1 INI文件及INI文件格式 344

19.5.2 ConfigParser对象和INI文件操作 344

19.6 复习题 346

19.7 上机实践 347

附录A 参考答案 348

参考文献 358

精品推荐