Python核心编程(第二版)图书
人气:22

Python核心编程(第二版)

《Python核心编程(第二版)》是经典的Python指导书,在*版的基础上进行了升级。全书分为两个部分:第1部分占据了大约三分之二的篇幅,阐释这门语言的“核心”内容,包括基本的概念和语句、语法和风格...
  • 所属分类:图书 >计算机/网络>程序设计>其他  
  • 作者:??????[Chun]?[W.J].?????????
  • 产品参数:
  • 丛书名:--
  • 国际刊号:9787115178503
  • 出版社:人民邮电出版社
  • 出版时间:2008-06
  • 印刷时间:2008-07-01
  • 版次:1
  • 开本:12开
  • 页数:--
  • 纸张:胶版纸
  • 包装:--
  • 套装:

内容简介

《Python核心编程(第二版)》是经典的Python指导书,在版的基础上进行了升级。全书分为两个部分:第1部分占据了大约三分之二的篇幅,阐释这门语言的“核心”内容,包括基本的概念和语句、语法和风格、Python对象、数字类型、序列类型、映射和集合类型、条件和循环、文件和输入/输出、错误和异常、函数和函数式编程、模块、面向对象编程、执行环境等内容:第2部分则提供了各种高级主题来展示可以使用Python做些什么,包括正则表达式、网络编程、网络客户端编程、多线程编程、图形用户界面编程、Web编程、数据库编程、扩展Python 和一些其他材料。

编辑推荐

对Python核心特性系统的专家级讲解;

为开发复杂的应用程序和软件所需的强大深入的视角;

易用的图表,详细描述了Python 模块、操作符、函数和方法;

大量的专业级的实例代码,从小的代码片段到功能齐全的应用程序一应俱全。

目录

目 录

第1部分 Python核心

第1章 欢迎来到Python世界 3

1.1 什么是Python 4

1.2 起源 4

1.3 特点 4

1.3.1 高级 4

1.3.2 面向对象 5

1.3.3 可升级 5

1.3.4 可扩展 5

1.3.5 可移植性 5

1.3.6 易学 6

1.3.7 易读 6

1.3.8 易维护 6

1.3.9 健壮性 6

1.3.10 高效的快速原型开发工具 6

1.3.11 内存管理器 7

1.3.12 解释性和(字节)编译性 7

1.4 下载和安装Python 7

1.5 运行Python 8

1.5.1 命令行上的交互式解释器 9

1.5.2 从命令行启动脚本 10

1.5.3 集成开发环境 11

1.5.4 其他的集成开发环境和执行环境 14

1.6 Python文档 15

1.7 比较Python(Python与其他语言的比较) 15

1.8 其他实现 17

1.9 练习 18

第2章 快速入门 19

2.1 程序输出,print语句及“Hello World!” 20

2.2 程序输入和raw_input()内建函数 21

2.3 注释 22

2.4 操作符 22

2.5 变量和赋值 24

2.6 数字 24

2.7 字符串 25

2.8 列表和元组 26

2.9 字典 26

2.10 代码块及缩进对齐 27

2.11 if语句 27

2.12 while循环 28

2.13 for循环和range()内建函数 28

2.14 列表解析 30

2.15 文件和内建函数open()、file() 30

2.16 错误和异常 31

2.17 函数 32

2.17.1 如何定义函数 32

2.17.2 如何调用函数 32

2.17.3 默认参数 33

2.18 类 33

2.19 模块 35

2.19.1 如何导入模块 35

2.19.2 如何访问一个模块函数或访问一个模块变量 35

2.20 实用的函数 36

2.21 练习 36

第3章 Python基础 39

3.1 语句和语法 40

3.1.1 注释(#) 40

3.1.2 继续(\) 40

3.1.3 多个语句构成代码组(:) 41

3.1.4 代码组由不同的缩进分隔 41

3.1.5 同一行书写多个语句(;) 41

3.1.6 模块 41

3.2 变量赋值 42

3.2.1 赋值操作符 42

3.2.2 增量赋值 42

3.2.3 多重赋值 43

3.2.4 “多元”赋值 43

3.3 标识符 44

3.3.1 合法的Python标识符 44

3.3.2 关键字 44

3.3.3 内建 45

3.3.4 专用下划线标识符 45

3.4 基本风格指南 45

3.4.1 模块结构和布局 46

3.4.2 在主程序中书写测试代码 48

3.5 内存管理 49

3.5.1 变量定义 49

3.5.2 动态类型 49

3.5.3 内存分配 49

3.5.4 引用计数 50

3.5.5 垃圾收集 51

3.6 及时个Python程序 51

3.7 相关模块和开发工具 54

3.8 练习 55

第4章 Python对象 56

4.1 Python 对象 57

4.2 标准类型 57

4.3 其他内建类型 58

4.3.1 类型对象和type类型对象 58

4.3.2 None--Python的Null对象 58

4.4 内部类型 59

4.4.1 代码对象 59

4.4.2 帧对象 60

4.4.3 跟踪记录对象 60

4.4.4 切片对象 60

4.4.5 省略对象 60

4.4.6 XRange 对象 60

4.5 标准类型操作符 61

4.5.1 对象值的比较 61

4.5.2 对象身份比较 61

4.5.3 布尔类型 64

4.6 标准类型内建函数 64

4.6.1 type() 64

4.6.2 cmp() 65

4.6.3 str()和repr()(及``操作符) 66

4.6.4 type()和isinstance() 67

4.6.5 Python类型操作符和内建函数总结 70

4.7 类型工厂函数 70

4.8 标准类型的分类 71

4.8.1 存储模型 71

4.8.2 更新模型 72

4.8.3 访问模型 73

4.9 不支持的类型 74

4.10 练习 75

第5章 数字 76

5.1 数字简介 77

5.1.1 如何创建数值对象并用其赋值(数字对象) 77

5.1.2 如何更新数字对象 77

5.1.3 如何删除数字对象 77

5.2 整型 77

5.2.1 布尔型 78

5.2.2 标准整型 78

5.2.3 长整型 78

5.2.4 整型和长整型的统一 79

5.3 双精度浮点型 79

5.4 复数 80

5.5 操作符 81

5.5.1 混合模式操作符 81

5.5.2 标准类型操作符 82

5.5.3 算术操作符 82

5.5.4 位操作符(只适用于整型) 86

5.6 内建函数与工厂函数 87

5.6.1 标准类型函数 87

5.6.2 数字类型函数 87

5.6.3 仅用于整型的函数 92

5.7 其他数字类型 93

5.7.1 布尔“数” 93

5.7.2 十进制浮点型 94

5.8 相关模块 95

5.9 练习 97

第6章 序列:字符串、列表和元组 100

6.1 序列 101

6.1.1 标准类型操作符 101

6.1.2 序列类型操作符 101

6.1.3 内建函数(BIF) 106

6.2 字符串 107

6.3 字符串和操作符 109

6.3.1 标准类型操作符 109

6.3.2 序列操作符切片([]和[:]) 109

6.4 只适用于字符串的操作符 114

6.4.1 格式化操作符(%) 114

6.4.2 字符串模板: 更简单的替代品 117

6.4.3 原始字符串操作符(r/R) 118

6.4.4 Unicode字符串操作符(u/U) 119

6.5 内建函数 119

6.5.1 标准类型函数 119

6.5.2 序列类型函数 119

6.5.3 字符串类型函数 120

6.6 字符串内建函数 121

6.7 字符串的独特特性 124

6.7.1 特殊字符串和控制字符 124

6.7.2 三引号 125

6.7.3 字符串不变性 126

6.8 Unicode 127

6.8.1 术语 127

6.8.2 什么是Unicode 128

6.8.3 怎样使用Unicode 128

6.8.4 Codec是什么 129

6.8.5 编码解码 129

6.8.6 把Unicode应用到实际应用中 130

6.8.7 从现实中得来的教训 131

6.8.8 Python的Unicode支持 131

6.9 相关模块 133

6.10 字符串关键点总结 134

6.11 列表 134

6.12 操作符 136

6.12.1 标准类型操作符 136

6.12.2 序列类型操作符 136

6.12.3 列表类型操作符和列表解析 139

6.13 内建函数 139

6.13.1 标准类型函数 139

6.13.2 序列类型函数 140

6.13.3 列表类型内建函数 142

6.14 列表类型的内建函数 142

6.15 列表的特殊特性 145

6.16 元组 151

6.17 元组操作符和内建函数 152

6.17.1 标准类型操作符、序列类型操作符和内建函数 152

6.17.2 元组类型操作符和内建函数、内建方法 153

6.18 元组的特殊特性 153

6.18.1 不可变性给元组带来了什么影响 153

6.18.2 元组也不是那么“不可变” 153

6.18.3 默认集合类型 154

6.18.4 单元素元组 155

6.18.5 字典的关键字 155

6.19 相关模块 156

6.20 拷贝Python对象、浅拷贝和深拷贝 156

6.21 序列类型小结 158

6.22 练习 160

第7章 映像和集合类型 163

7.1 映射类型:字典 164

7.1.1 如何创建字典和给字典赋值 164

7.1.2 如何访问字典中的值 165

7.1.3 如何更新字典 166

7.1.4 如何删除字典元素和字典 167

7.2 映射类型操作符 167

7.2.1 标准类型操作符 167

7.2.2 映射类型操作符 168

7.3 映射类型的内建函数和工厂函数 168

7.3.1 标准类型函数[type()、str()和cmp()] 168

7.3.2 映射类型相关的函数 170

7.4 映射类型内建方法 172

7.5 字典的键 174

7.5.1 不允许一个键对应多个值 174

7.5.2 键必须是可哈希的 175

7.6 集合类型 178

7.6.1 如何创建集合类型和给集合赋值 179

7.6.2 如何访问集合中的值 179

7.6.3 如何更新集合 179

7.6.4 如何删除集合中的成员和集合 180

7.7 集合类型操作符 180

7.7.1 标准类型操作符(所有的集合类型) 180

7.7.2 集合类型操作符(所有的集合类型) 181

7.7.3 集合类型操作符(仅适用于可变集合) 182

7.8 内建函数 183

7.8.1 标准类型函数 183

7.8.2 集合类型工厂函数 183

7.9 集合类型内建方法 184

7.9.1 方法(所有的集合方法) 184

7.9.2 方法(仅适用于可变集合) 184

7.9.3 操作符和内建方法比较 185

7.10 集合类型总结表 185

7.11 相关模块 186

7.12 练习 186

第8章 条件和循环 189

8.1 if语句 190

8.1.1 多重条件表达式 190

8.1.2 单一语句的代码块 190

8.2 else语句 190

8.3 elif(即else-if)语句 191

8.4 条件表达式(即“三元操作符”) 192

8.5 while语句 193

8.5.1 一般语法 193

8.5.2 计数循环 193

8.5.3 无限循环 194

8.6 for语句 194

8.6.1 一般语法 194

8.6.2 用于序列类型 195

8.6.3 用于迭代器类型 196

8.6.4 range()内建函数 196

8.6.5 xrange() 内建函数 198

8.6.6 与序列相关的内建函数 198

8.7 break语句 199

8.8 continue语句 199

8.9 pass语句 200

8.10 再谈else语句 200

8.11 迭代器和iter()函数 202

8.11.1 什么是迭代器 202

8.11.2 为什么要迭代器 202

8.11.3 如何迭代 202

8.11.4 使用迭代器 203

8.11.5 可变对象和迭代器 204

8.11.6 如何创建迭代器 204

8.12 列表解析 205

8.13 生成器表达式 206

8.14 相关模块 209

8.15 练习 209

第9章 文件和输入输出 212

9.1 文件对象 213

9.2 文件内建函数(open()和file()) 213

9.2.1 工厂函数file() 214

9.2.2 通用换行符支持(UNS) 214

9.3 文件内建方法 215

9.3.1 输入 215

9.3.2 输出 215

9.3.3 文件内移动 216

9.3.4 文件迭代 216

9.3.5 其他 216

9.3.6 文件方法杂项 217

9.4 文件内建属性 219

9.5 标准文件 220

9.6 命令行参数 220

9.7 文件系统 221

9.8 文件执行 227

9.9 长期存储模块 227

9.9.1 pickle和marshal模块 227

9.9.2 DBM风格的模块 228

9.9.3 shelve模块 228

9.10 相关模块 229

9.11 练习 230

第10章 错误和异常 234

10.1 什么是异常 235

10.1.1 错误 235

10.1.2 异常 235

10.2 Python 中的异常 236

10.3 检测和处理异常 237

10.3.1 try-except语句 238

10.3.2 包装内建函数 238

10.3.3 带有多个except的try语句 240

10.3.4 处理多个异常的except语句 241

10.3.5 捕获所有异常 242

10.3.6 “异常参数” 244

10.3.7 在应用使用我们封装的函数 245

10.3.8 else子句 247

10.3.9 finally子句 248

10.3.10 try-finally语句 248

10.3.11 try-except-else-finally:厨房一锅端 250

10.4 上下文管理 251

10.4.1 with语句 251

10.4.2 上下文管理协议 252

10.5 字符串作为异常 252

10.6 触发异常 253

10.7 断言 254

10.8 标准异常 255

10.9 创建异常 257

10.10 (现在)为什么用异常 262

10.11 到底为什么要异常 263

10.12 异常和sys模块 263

10.13 相关模块 264

10.14 练习 264

第11章 函数和函数式编程 266

11.1 什么是函数? 267

11.1.1 函数vs过程 267

11.1.2 返回值与函数类型 267

11.2 调用函数 268

11.2.1 函数操作符 268

11.2.2 关键字参数 269

11.2.3 默认参数 269

11.2.4 参数组 269

11.3 创建函数 272

11.3.1 def语句 272

11.3.2 声明与定义比较 272

11.3.3 前向引用 272

11.3.4 函数属性 273

11.3.5 内部/内嵌函数 274

11.3.6 函数(与方法)装饰器 275

11.4 传递函数 278

11.5 Formal Arguments 279

11.5.1 位置参数 279

11.5.2 默认参数 279

11.6 可变长度的参数 282

11.6.1 非关键字可变长参数(元组) 282

11.6.2 关键字变量参数(字典) 283

11.6.3 调用带有可变长参数对象函数 284

11.7 函数式编程 286

11.7.1 匿名函数与lambda 286

11.7.2 内建函数apply()、filter()、map()、reduce() 288

11.7.3 偏函数应用 293

11.8 变量作用域 295

11.8.1 全局变量与局部变量 295

11.8.2 globa语句 296

11.8.3 作用域的数字 297

11.8.4 闭包 298

11.8.5 作用域和lambda 302

11.8.6 变量作用域和名称空间 304

11.9 递归 304

11.10 生成器 305

11.10.1 简单的生成器特性 305

11.10.2 加强的生成器特性 307

11.11 练习 308

第12章 模块 310

12.1 什么是模块 311

12.2 模块和文件 311

12.2.1 模块名称空间 311

12.2.2 搜索路径和路径搜索 311

12.3 名称空间 312

12.3.1 名称空间与变量作用域比较 313

12.3.2 名称查找、确定作用域、覆盖 314

12.3.3 无限制的名称空间 314

12.4 导入模块 315

12.4.1 import语句 315

12.4.2 from-import语句 315

12.4.3 多行导入 316

12.4.4 扩展的import语句(as) 316

12.5 模块导入的特性 316

12.5.1 载入时执行模块 316

12.5.2 导入(import)和加载(load) 317

12.5.3 导入到当前名称空间的名称 317

12.5.4 被导入到导入者作用域的名字 317

12.5.5 关于__future__ 318

12.5.6 警告框架 318

12.5.7 从ZIP文件中导入模块 319

12.5.8 “新的”导入钩子 319

12.6 模块内建函数 319

12.6.1 __import__() 319

12.6.2 globals()和locals() 320

12.6.3 reload() 320

12.7 包 321

12.7.1 目录结构 321

12.7.2 使用from-import导入包 322

12.8 模块的其他特性 323

12.8.1 自动载入的模块 323

12.8.2 阻止属性导入 323

12.8.3 不区分大小的导入 323

12.8.4 源代码编码 324

12.8.5 导入循环 324

12.8.6 模块执行 325

12.9 相关模块 325

12.10 练习 326

第13章 面向对象编程 327

13.1 引言 328

13.2 面向对象编程 333

13.2.1 面向对象设计与面向对象编程的关系 333

13.2.2 现实中的问题 334

13.2.3 常用术语 334

13.3 类 335

13.3.1 创建类 336

13.3.2 声明与定义 336

13.4 类属性 336

13.4.1 类的数据属性 337

13.4.2 Methods 337

13.4.3 决定类的

在线预览

第1部分 Python核心

第1章 欢迎来到Python世界

开篇将介绍一些Python的背景知识,包括什么是Python、Python的起源和它的一些关键特性。一旦你来了兴致,我们就会向你介绍怎样获得Python,以及如何在你的系统上安装并运行它。本章的练习将会帮助你非常自如地使用Python,包括使用交互式解释器,以及创建并运行脚本程序。

1.1 什么是Python

Python是一门优雅而健壮的编程语言,它继承了传统编译语言的强大性和通用性,同时也借鉴了简单脚本和解释语言的易用性。它可以帮你完成工作,而且一段时问以后,你还能看明白自己写的这段代码。你会对自己如此快地学会它和它强大的功能感到十分的惊讶,更不用提你已经完成的工作了!只有你想不到,没有Python做不到。

1.2 起源

Guido van Rossum于1989年底始创了Python,那时,他还在荷兰的CWI(Centrum voor Wiskunde en Informatica,国家数学和计算机科学研究院)。1991年初,Python了及时个公开发行版。这一切究竟是如何开始的呢?像C、C 、Lisp、.Java和Perl一样,Python来自于某个研究项目,项目中的那些程序员利用手边现有的工具辛苦地工作着,他们设想并开发出了更好的解决办法。

那时van Rossum是一位研究人员,对解释型语言ABC有着丰富的设计‘经验,这个语言同样也是在CWI开发的。但是他不满足其有限的开发能力。已经使用并参与开发了像ABC这样的高级语言后,再退回到C语言显然是不可能的。他所期望的工具有一些是用于完成日常系统管理任务的,而且它还希望能够访问Amoeba分布式操作系统的系统调用。尽管vanRossum也曾想过为Amoeba开发专用语言,但足创造一种通用的程序设计语言显然更加明智,于是在1989年末,Python的种子被播下了。

1.3 特点

尽管Python已经流行了超过15年,但是一些人仍旧认为相对于通用软件开发产业而言,它还是个新丁。我们应当谨慎地使用“相对”这个词,因为“网络时代”的程序开发,几年看上去就像几十年。

当人们询问:“什么是Python?”的时候,很难用任何一个具象来描述它。人们更倾向于一口气不加思索地说出他们对Python的所有感觉,Python是一(请填写),这些特点究竟又是什么呢?为了让你能知其所以然,我们下面会对这些特点进行逐一地阐释。

1.3.1 高级

伴随着每一代编程语言的产生,我们会达到一个新的高度。汇编语言是献给那些挣扎在机器代码中的人的礼物,后来有了FORTRAN、c和Pascal语言,它们将计算提升到了崭新的高度,并且开创了软件开发行业。伴随着C语言诞生了更多的像c斗_卜、Java这样的现代编译语言。我们没有止步于此,于是有了强大的、可以进行系统调用的解释型脚本语言,例如Tcl、Perl和Python。

这些语言都有高级的数据结构,这样就减少了以前“框架”开发需要的时间。像Python中的列表(大小可变的数组)和字典(哈希表)就是内建于语言本身的。在核心语言中提供这些重要的构建单元,可以鼓励人们使用它们,缩短开发时间与代码量,产生出可读性更好的代码。

在C语言中,对于混杂数组(Python中的列表)和哈希表(Python中的字典)还没有相应的标准库,所以它们经常被重复实现,并被复制到每个新项目中去。这个过程混乱而且容易产生错误。

……

免责声明

更多相关图书
在线咨询