《Python学习手册(第3版)》为机械工业出版社出版。

目录

前言

第一部分 使用入门第1章 问答环节

人们为何使用Python

软件质量

开发者效率

Python是“脚本语言”吗

好吧,Python的缺点是什么呢

如今谁在使用Python

使用Python可以做些什么

系统编程

用户图形接口

Internet脚本

组件集成

数据库编程

快速原型

数值计算和科学计算编程

游戏.图像.人工智能.XML.机器人等

Python有哪些技术上的优点

面向对象

免费

可移植

功能强大

可混合

使用简单

Python是工程,不是艺术

简单易学

名字来源于MontyPython

Python和其他语言比较起来怎么样

本章小结

头脑风暴

本章习题

习题解答

第2章 Python如何运行程序.

Python解释器简介

程序执行

程序员的视角

Python的视角

执行模块的变种

Python实现的替代者

执行优化工具

冻结二进制文件

未来的可能性

本章小结

头脑风暴

本章习题

习题解答

第3章 如何运行程序

交互模式下编写代码

在交互提示模式下测试代码

使用交互提示模式

系统命令行和文件

使用命令行和文件

UNIX可执行脚本(#!)

UNIXenv查找技巧

点击文件图标

在Windows中点击图标

raw_input的技巧

图标点击的其他限制

模块导入和重载

模块的显要特性:属性

import和reload的使用注意事项

IDLE用户界面

IDLE基础

使用IDLE

高级IDLE工具

其他的IDE

嵌入式调用

动付二进制的可执行性

文本编辑器启动的选择

其他的启动选择

未来的可能

我应该选用哪种

本章小结74..

头脑风暴

本章习题

习题解答

头脑风暴:第一部分 练习题

第二部分 类型和运算第4章 介绍Python对象类型.

为什么使用内置类型

Python的核心数据类型

数字

字符串

序列的操作

不可变性

类型特定的方法

寻求帮助

编写字符串的其他方法

模式匹配

列表

序列操作

类型特定的操作

边界检查

嵌套

列表解析

字典

映射操作

重访嵌套

键的排序:for循环

迭代和优化

不存在的键:if测试

元组

为什么要用元组

文件

其他文件类工具

其他核心类型

如何破坏代码的灵活性

用户定义的类

剩余的内容

本章小结

头脑风暴

本章习题

习题解答

第5章 数字

Python的数字类型

数字常量

内置数学工具和扩展

Python表达式操作符

混合操作所遵循的操作符优先级.

括号分组的子表达式

混合类型自动升级

预习:运算符重载

在实际应用中的数字

变量和基本的表达式

数字显示的格式

str和repr显示格式

除法:传统除法.Floor除法和真除法.

位操作

长整型数

复数

十六进制和八进制记数

其他的内置数学工具

其他数字类型

小数数字

集合

布尔型

第三方扩展

本章小结

头脑风暴

本章习题

习题解答

第6章 动态类型简介.

缺少类型声明语句的情况

变量.对象和引用

类型属于对象,而不是变量

对象的垃圾收集

共享引用

共享引用和在原处修改

共享引用和相等

动态类型随处可见

本章小结

头脑风暴

本章习题

习题解答

第7章 字符串

字符串常量

单双引号字符串是一样的

用转义序列代表特殊字节

字符串抑制转义

三重引号编写多行字符串块

字符串编码更大的字符集

实际应用中的字符串

基本操作

索引和分片

为什么要在意:分片

字符串转换工具

修改字符串

字符串格式化

更高级的字符串格式化

基于字典的字符串格式化

字符串方法

字符串方法实例:修改字符串

字符串方法实例:文本解析

实际应用中的其他常见字符串方法

最初的字符串模块

通常意义下的类型分类

同样分类的类型共享其操作集合

可变类型能够在原处修改

本章小结

头脑风暴

本章习题

习题解答

第8章 列表与字典.

列表

实际应用中的列表

基本列表操作

索引.分片和矩阵

原处修改列表

字典

实际应用中的字典

字典的基本操作

原处修改字典

其他字典方法

语言表

字典用法注意事项

为什么要在意字典接口

本章小结

头脑风暴

本章习题

习题解答

第9章 元组.文件及其他

元组

实际应用中的元组

为什么有了列表还要元组

文件

打开文件

使用文件

实际应用中的文件

其他文件工具

重访类型分类

为什么要在意操作符重载

对象灵活性

引用VS拷贝

比较.相等性和真值

Python中真和假的含义

Python的类型层次

Python中的其他类型

内置类型陷阱

赋值生成引用,而不是拷贝

重复能够增加层次深度.

留意循环数据结构

不可变类型不可以在原处改变

本章小结

头脑风暴

本章习题

习题解答

头脑风暴:第二部分 练习题

第三部分 语句和语法第10章 Python语句简介.

重访Python程序结构

Python的语句

两个if的故事

Python增加了什么

Python删除了什么

终止行就是终止语句

为什么使用缩进语法

几个特殊实例

简短实例:交互循环

一个简单的交互式循环

对用户输入数据做数学运算

用测试输入数据来处理错误

用try语句处理错误

嵌套代码三层

本章小结

头脑风暴

本章习题

习题解答

第11章 赋值.表达式和打印

赋值语句

赋值语句的形式

序列赋值

多目标赋值语句

增强赋值语句

变量命名规则

表达式语句

表达式语句和在原处的修改

打印语句

Python的“HelloWorld”程序

重定向输出流

print>>file扩展

本章小结

头脑风暴

本章习题

习题解答

第12章 if测试.

if语句

通用格式

基本例子

多路分支

Python语法规则

代码块分隔符

语句的分隔符

一些特殊情况

真值测试

if/else三元表达式

为什么要在意布尔值

本章小结

头脑风暴

本章习题

习题解答

第13章 while和for循环

while循环

一般格式

例子

break.continue.pass和循环else

一般循环格式

例子

为什么要在意“模拟C语言的while循环”

for循环

一般格式

例子

为什么要在意“文件扫描”

迭代器:初探

文件迭代器

其他内置类型迭代器

其他迭代环境

用户定义的迭代器

编写循环的技巧

循环计数器:while和range

非完备遍历:range

修改列表:range

并行遍历:zip和map

产生偏移和元素:enumerate

列表解析:初探

列表解析基础

对文件使用列表解析

扩展列表解析语法

本章小结

头脑风暴

本章习题

习题解答

第14章 文档

Python文档资源

注释

dir函数

文档字符串:doc

PyDoc:help函数

PyDoc:HTML报表

标准手册集

网络资源

已出版的书籍.

常见编写代码的陷阱

本章小结

头脑风暴

本章习题

习题解答

头脑风暴:第三部分 练习题

第四部分 函数第15章 函数基础

为何使用函数

编写函数

def语句

def语句是实时执行的

第一个例子:定义和调用

定义

调用

Python中的多态

第二个例子:寻找序列的交集

定义

调用

重访多态

本地变量

本章小结

头脑风暴

本章习题

习题解答

第16章 作用域和参数

作用域法则

函数作用域基础

变量名解析:LEGB原则

作用域实例

内置作用域

global语句

最小化全局变量

最小化文件间的修改

其他访问全局变量的方法

作用域和嵌套函数

嵌套作用域的细节

嵌套作用域举例

传递参数

参数和共享引用

避免可变参数的修改

对参数输出进行模拟

特定的参数匹配模型

关键字参数和默认参数的实例

任意参数的实例

关键字参数和默认参数的混合

min调用

一个更有用的例子:通用set函数

参数匹配:细节

为什么要在意:关键字参数

本章小结

头脑风暴

本章习题

习题解答

第17章 函数的高级话题.

匿名函数:lambda

lambda表达式

为什么使用lambda

如何(不要)让Python代码变得晦涩难懂

嵌套lambda和作用域

作为参数来应用函数

内置函数apply

为什么要在意:回调

传入关键字参数

和apply类似的调用语法

在序列中映射函数:map

函数式编程工具:filter和reduce

重访列表解析:映射

列表解析基础

增加测试和嵌套循环

列表解析和矩阵

理解列表解析

为什么要在意:列表解析和map

重访迭代器:生成器

生成器函数实例

扩展生成器函数协议:send和next

迭代器和内置类型

生成器表达式:迭代器遇到列表解析

对迭代的各种方法进行计时

函数设计概念

函数是对象:简洁调用

函数陷阱

本地变量是静态检测的

默认和可变对象

没有return语句的函数

嵌套作用域的循环变量

本章小结

头脑风暴

本章习题

习题解答

头脑风暴:第四部分 练习题

第五部分 模块第18章 模块:宏伟蓝图.

为什么使用模块

Python程序构架

如何组织一个程序

导入和属性

标准库模块

import如何工作

搜索

编译(可选)

运行

第三方工具:distutils

本章小结

头脑风暴

本章习题

习题解答

第19章 模块代码编写基础.

模块的创建

模块的使用

import语句

from语句

from语句

导入只发生一次

import和from是赋值语句

文件间变量名的改变

import和from的对等性

from语句潜在的陷阱

模块命名空间

文件生成命名空间

属性名的点号运算

导入和作用域

命名空间的嵌套

重载模块

reload基础

reload实例

为什么要在意:模块重载

本章小结

头脑风暴

本章习题

习题解答

第20章 模块包

包导入基础

包和搜索路径设置

init.py包文件

包导入实例

包对应的from和import

为什么要使用包导入

三个系统的传说

为什么要在意:模块包

本章小结

头脑风暴

本章习题

习题解答

第21章高级模块话题

在模块中隐藏数据

最小化from的破坏:_X和all.

启用以后的语言特性

混合用法模式:name和main

以name进行单元测试

修改模块搜索路径

importas扩展

相对导入语法

为什么使用相对导入

模块设计理念

模块是对象:元程序

模块陷阱

顶层代码的语句次序的重要性

通过变量名字符串导入模块

from复制变量名,而不是连接

from*会让变量语义模糊

reload不会影响from导入

reload.from以及交互模式测试

reload的使用没有传递性

递归形式的fromimport无法工作

本章小结

头脑风暴

本章习题

习题解答

头脑风暴:第五部分 练习题

第六部分 类和OOP第22章OOP:宏伟蓝图

为何使用类

概览OOP

属性继承搜索

类和实例

类方法调用

编写类树

OOP是为了代码重用

本章小结

头脑风暴

本章习题

习题解答

第23章类代码编写基础.

类产生多个实例对象

类对象提供默认行为

实例对象是具体的元素

第一个例子

类通过继承进行定制

第二个例子

类是模块内的属性

类可以截获Python运算符

第三个例子

为什么要使用运算符重载

世界上最简单的Python类

本章小结

头脑风暴

本章习题

习题解答

第24章类代码编写细节.

class语句

一般形式

例子

方法

例子

调用超类的构造器

其他方法调用的可能性

继承

属性树的构造

继承方法的专有化

类接口技术

抽象超类

运算符重载

常见的运算符重载方法

getitem拦截索引运算

getitem和iter实现迭代

用户定义的迭代器

getattr和setattr捕捉属性的引用

模拟实例属性的私有性

repr和str会返回字符串表达形式

radd处理右侧加法

call拦截调用

函数接口和回调代码

del是析构器

命名空间:完整的内容

简单变量名:如果赋值就不是全局变量

属性名称:对象命名空间

Python命名空间的“禅”:赋值将变量名分类

命名空间字典

命名空间链接

一个更实际的例子

本章小结

头脑风暴

本章习题

习题解答

第25章类的设计

Python和OOP

通过调用标记进行重载(或不要)

类作为记录

类和继承:“是一个”关系

类和组合:“有一个”关系

重访流处理器

为什么要在意:类和持续性

OOP和委托

多重继承

类是对象:通用对象的工厂

为什么有工厂

方法是对象:绑定或无绑定

重访文档字符串

为什么要在意:绑定方法和回调函数

类和模块

本章小结

头脑风暴

本章习题

习题解答

第26章类的高级主题

扩展内置类型

通过嵌入扩展类型

通过子类扩展类型

类的伪私有属性

变量名压缩概览

为什么使用伪私有属性

新式类

钻石继承变动

其他新式类的扩展

静态和类方法

使用静态和类方法

函数装饰器

装饰器例子

类陷阱

修改类属性的副作用

多重继承:顺序很重要

类.方法以及嵌套作用域

“过度包装”

本章小结

头脑风暴

本章习题

习题解答

头脑风暴:第六部分 练习题

第七部分 异常和工具第27章异常基础

为什么使用异常

异常的角色

异常处理:简明扼要

try/except/else语句

try语句分句

try/else分句

例子:默认行为

例子:捕捉内置异常

try/finally语句

例子:利用try/finally编写终止行为

统一try/except/finally

通过嵌套合并finally和except

合并try的例子

raise语句

例子:引发并捕捉用户定义的异常

例子:利用raise传入额外的数据

例子:利用raise传递异常

assert语句

例子:收集约束条件(但不是错误)

with/as环境管理器

基本使用

环境管理协议

为什么要在意:错误检查

本章小结

头脑风暴

本章习题

习题解答

第28章异常对象

基于字符串的异常

字符串异常就要出局了

基于类的异常

类异常例子

为什么使用类异常

内置Exception类

定义异常文本

发送额外数据和实例行为

raise语句的一般形式

本章小结

头脑风暴

本章习题

习题解答

第29章异常的设计

嵌套异常处理器

例子:控制流程嵌套

例子:语法嵌套化

异常的习惯用法

异常不总是错误

函数信号条件和raise

在try外进行调试

运行进程中的测试

关于sys.exc_info

与异常有关的技巧

应该包装什么

捕捉太多:避免空except语句

捕捉过少:使用基于类的分类

异常陷阱

字符串异常匹配是通过同一性而不是通过值

捕捉到错误的异常

核心语言总结

Python工具集

大型项目的开发工具

本章小结

头脑风暴

本章习题

习题解答

头脑风暴:第七部分 练习题

第八部分 附录

附录A安装和配置

附录B每部分练习题解答