导语
内容提要
马克·卢茨著秦鹤、林明译的《Python学习手册(上下原书第5版)》将帮助你使用Python编写出高质量、高效的并且易于与其他语言和工具集成的代码。本书根据Python专家Mark Lutz的著名培训课程编写而成,是易于掌握和自学的Python教程。
本书每一章都对Python语言的关键内容做单独讲解,并且配有章后习题、编程练习及详尽的解答,还配有大量注释的示例以及图表,便于你学习新的技能并巩固加深自己的理解。第5版基于Python2.7和3.3版本,同时也适用于其他Python版本。无论你是编程新手还是其他编程语言的资深开发者,本书都会是你学习Python的理想选择。
本书主要内容:
学习Python的主要内置对象类型,如数字、列表和字典。
使用Python语句创建和处理对象,并学习Python的通用语法模型。
使用函数减少代码冗余,使用包代码结构实现代码重用。
学习Python模块,从而封装语句、函数和其他工具,以便构建大型组件。
学习类,即Python用于组织代码的面向对象编程工具。
使用Python的异常处理模型和开发工具编写大型程序。
学习高级Python工具,包括装饰符、描述符、元类和Unicode的处理等。
作者简介
马克·卢茨,Mark Lutz是一位世界级的Python培训讲师。他是Python畅销书籍的作者,同时从1992年起就成为Python社区的引领者。Mark有着30余年的软件开发经验,也是《Python编程》《Python袖珍指南》等书的作者。
目录
上册
前言
第一部分 使用入门
第1章 问答环节
人们为何使用Python
软件质量
开发者效率
Python是一门“脚本语言”吗
好吧,Python的缺点是什么
如今谁在使用Python
其他的Python设计权衡:一些难以把握的方面
使用Python可以做些什么
系统编程
图形用户界面(GUI)
Internet脚本
组件集成
数据库编程
快速原型
数值计算和科学计算编程
更多内容:游戏、图像、数据挖掘、机器人、Excel等
Python如何开发并获得支持
开源的权衡
Python有哪些技术上的优点
面向对象和函数式
免费
可移植
功能强大
可混合
相对简单易用
相对简单易学
以Monty Python命名
Python和其他语言比较起来怎么样
本章小结
本章习题
习题解答
Python是工程,不是艺术
第2章 Python如何运行程序
Python解释器简介
程序执行
程序员的视角
Python的视角
执行模型的变体
Python的各种实现
执行优化工具
冻结二进制文件
未来的可能性
本章小结
本章习题
习题解答
第3章 你应如何运行程序
交互式命令行模式
开始一个交互式会话
Windows平台上的交互式命令行在哪里
系统路径
Python 3.3中的新Windows选项:PATH和启动器
运行的位置:代码目录
不需要输入的内容:提示符和注释
交互式地运行代码
为什么要使用交互式命令行模式
使用注意:交互命令行模式
系统命令行和文件
第一段脚本
使用命令行运行文件
不同的命令行使用方式
使用注意:命令行和文件
UNIX风格可执行脚本
UNIX脚本基础
UNIX env查找技巧
Python 3.3 Windows启动器:Windows也有#!了
点击文件图标
图标点击基础知识
在Windows上点击图标
Windows上输入的技巧
其他图标点击的限制
模块导入和重载
导入和重载基础知识
模块的宏观视角:属性
使用注意:import和reload
使用exec运行模块文件
IDLE用户界面
IDLE启动细节
IDLE基础用法
IDLE功能特性
高级IDLE工具
使用注意:IDLE
其他IDE
其他启动选项
嵌入式调用
冻结二进制可执行文件
文本编辑器启动方式
其他的启动方式
未来的可能
应该选用哪种方式
调试Python代码
本章小结
本章习题
习题解答
第一部分练习题
第二部分 类型和运算
第4章 介绍Python对象类型
Python知识结构
为什么要使用内置类型
Python核心数据类型
数字
字符串
序列操作
不可变性
特定类型的方法
寻求帮助
字符串编程的其他方式
Unicode字符串
模式匹配
列表
序列操作
特定的操作
边界检查
嵌套
推导
字典
映射操作
重访嵌套
不存在的键:if 测试
键的排序:for 循环
迭代和优化
元组
为什么要使用元组
文件
二进制字节文件
Unicode文本文件
其他类文件工具
其他核心类型
如何破坏代码的灵活性
用户定义的类
剩余的内容
本章小结
本章习题
习题解答
第5章 数值类型
数值类型基础知识
数值字面量
内置数值工具
Python表达式运算符
数字的实际应用
变量与基础表达式
数值的显示格式
str和repr显示格式
普通比较与链式比较
除法:经典除法、向下取整除法和真除法
整数精度
复数
十六进制、八进制和二进制:字面量与转换
按位操作
其他内置数值工具
其他数值类型
小数类型
分数类型
集合
布尔型
数值扩展
本章小结
本章习题
习题解答
第6章 动态类型
缺少声明语句的情况
变量、对象和引用
类型属于对象,而不是变量
对象的垃圾收集
关于Python垃圾回收的更多讨论
共享引用
共享引用和在原位置修改
共享引用和相等
动态类型随处可见
“弱”引用
本章小结
本章习题
习题解答
第7章 字符串基础
本章范围
Unicode简介
字符串基础
字符串字面量
单引号和双引号字符串是一样的
转义序列代表特殊字符
原始字符串阻止转义
三引号编写多行块字符串
实际应用中的字符串
基本操作
索引和分片
请留意:分片
字符串转换工具
修改字符串I
字符串方法
方法调用语法
字符串的方法
字符串方法示例:修改字符串II
字符串方法示例:解析文本
实际应用中的其他常见字符串方法
原始string模块的函数(在Python 3.X中删除)
字符串格式化表达式
格式化表达式基础
高级格式化表达式语法
高级格式化表达式举例
基于字典的格式化表达式
字符串格式化方法调用
字符串格式化方法基础
添加键、属性和偏移量
高级格式化方法语法
高级格式化方法举例
与%格式化表达式比较
为什么使用格式化方法
通用类型分类
同一分类中的类型共享同一个操作集
可变类型能够在原位置修改
本章小结
本章习题
习题解答
第8章 列表与字典
列表
列表的实际应用
基本列表操作
列表迭代和推导
索引、分片和矩阵
原位置修改列表
字典
字典的实际应用
字典的基本操作
原位置修改字典
其他字典方法
示例:电影数据库
字典用法注意事项
创建字典的其他方式
请留意:字典vs列表
Python 3.X和2.7中的字典变化
请留意:字典接口
本章小结
本章习题
习题解答
第9章 元组、文件与其他核心类型
元组
元组的实际应用
为什么有了列表还要元组
重访记录:有名元组
文件
打开文件
使用文件
文件的实际应用
文本和二进制文件:一个简要的故事
在文件中存储Python对象:转换
存储Python原生对象:pickle
用JSON格式存储Python对象
存储打包二进制数据:struct
文件上下文管理器
其他文件工具
核心类型复习与总结
请留意:运算符重载
对象灵活性
引用vs复制
比较、等价性和真值
Python中True和False的含义
Python的类型层次
类型的对象
Python中的其他类型
内置类型陷阱
赋值创建引用,而不是复制
重复会增加层次深度
注意循环数据结构
不可变类型不可以在原位置改变
本章小结
本章习题
习题解答
第二部分练习题
第三部分 语句和语法
第10章 Python语句简介
重温Python的知识结构
Python的语句
两种不同的if
Python增加的元素
Python删除的元素
为什么采用缩进语法
几种特殊情况
简短示例:交互式循环
一个简单的交互式循环
对用户输入做数学运算
通过测试输入数据来处理错误
用try语句处理错误
嵌套三层深的代码
本章小结
本章习题
习题解答
第11章 赋值、表达式和打印
赋值语句
赋值语句形式
序列赋值
Python 3.X中的扩展序列解包
多目标赋值
增量赋值
变量命名规则
Python中的废弃协议
表达式语句
表达式语句和原位置修改
打印操作
Python 3.X的print函数
Python 2.X的print语句
打印流重定向
版本中立的打印
为什么你要注意:print和stdout
本章小结
本章习题
习题解答
第12章 if测试和语法规则
if语句
一般形式
基础示例
多路分支
复习Python语法规则
代码块分隔符:缩进规则
语句分隔符:行与行间连接符
一些特殊情况
真值和布尔测试
if/else三元表达式
请留意:布尔值
本章小结
本章习题
习题解答
第13章 while循环和for循环
while循环
一般形式
示例
break、continue、pass和循环的else
一般循环形式
pass
continue
break
循环的else
请留意:仿真C 语言的while循环
for循环
一般形式
示例
请留意:文件扫描器
编写循环的技巧
计数器循环:range
序列扫描:while和range vs for
序列乱序器:range和len
非穷尽遍历:range vs分片
修改列表:range vs推导
并行遍历:zip和map
同时给出偏移量和元素:enumerate
请留意:shell命令及其他
本章小结
本章习题
习题解答
第14章 迭代和推导
迭代器:初次探索
迭代协议:文件迭代器
手动迭代:iter和next
其他内置类型可迭代对象
列表推导:初次深入探索
列表推导基础
在文件上使用列表推导
扩展的列表推导语法
其他迭代上下文
Python 3.X新增的可迭代对象
对Python 2.X版本代码的影响:利与弊
range可迭代对象
map、zip和filter可迭代对象
多遍迭代器vs单遍迭代器
字典视图可迭代对象
其他迭代话题
本章小结
本章习题
习题解答
第15章 文档
Python文档资源
#注释
dir函数
文档字符串:__doc
PyDoc:help函数
PyDoc:HTML报告
改变PyDoc的颜色
超越文档字符串:Sphinx
标准手册集
网络资源
已出版的书籍
常见代码编写陷阱
本章小结
本章习题
习题解答
第三部分练习题
第四部分 函数和生成器
第16章 函数基础
为何使用函数
编写函数
def语句
def语句执行于运行时
第一个示例:定义和调用
定义
调用
Python中的多态
第二个示例:寻找序列的交集
定义
调用
重访多态
局部变量
本章小结
本章习题
习题解答
第17章 作用域
Python作用域基础
作用域细节
变量名解析:LEGB规则
作用域实例
内置作用域
打破Python 2.X的小宇宙
global语句
程序设计:最少化全局变量
程序设计:最小化跨文件的修改
其他访问全局变量的方式
作用域和嵌套函数
嵌套作用域的细节
嵌套作用域举例
工厂函数:闭包
使用默认值参数来保存外层作用域的状态
Python 3.X中的nonlocal语句
nonlocal基础
nonlocal应用
为什么选nonlocal?状态保持备选项
nonlocal变量的状态:仅适用于Python 3
全局变量的状态:只有一份副本
类的状态:显式属性(预习)
函数属性的状态:Python 3.X和Python 2.X的异同
请留意:定制open
本章小结
本章习题
习题解答
第18章 参数
第五部分 模块和包
下册
第六部分 类和面向对象编程(OOP)
第七部分 异常和工具
第八部分 高级主题
第九部分 附录