Python学习手册 原书第5版 下册
Learning Python, 5th Edition Python学习手册 原书第5版 上册 (马克·卢茨)
✍ Scribed by Mark Lutz
- Publisher
- O'Reilly Media
- Year
- 2013
- Tongue
- English
- Leaves
- 796
- Edition
- 5
- Category
- Library
No coin nor oath required. For personal study only.
✦ Synopsis
Get a comprehensive, in-depth introduction to the core Python language with this hands-on book. Based on author Mark Lutz’s popular training course, this updated fifth edition will help you quickly write efficient, high-quality code with Python. It’s an ideal way to begin, whether you’re new to programming or a professional developer versed in other languages.
Complete with quizzes, exercises, and helpful illustrations, this easy-to-follow, self-paced tutorial gets you started with both Python 2.7 and 3.3— the latest releases in the 3.X and 2.X lines—plus all other releases in common use today. You’ll also learn some advanced language features that recently have become more common in Python code.
- Explore Python’s major built-in object types such as numbers, lists, and dictionaries
- Create and process objects with Python statements, and learn Python’s general syntax model
- Use functions to avoid code redundancy and package code for reuse
- Organize statements, functions, and other tools into larger components with modules
- Dive into classes: Python’s object-oriented programming tool for structuring code
- Write large programs with Python’s exception-handling model and development tools
- Learn advanced Python tools, including decorators, descriptors, metaclasses, and Unicode processing
✦ Table of Contents
封面
译者序
目录
前言
第一部分 使用入门
第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 X
全局变量的状态:只有一份副本
类的状态:显式属性(预习)
函数属性的状态:Python 3 X和Python 2.X的异同
请留意:定制open
本章小结
本章习题
习题解答
第18章 参数
参数传递基础
参数和共享引用
避免修改可变参数
模拟输出参数和多重结果
特殊的参数匹配模式
参数匹配基础
参数匹配语法
更深入的细节
关键字参数和默认值参数的示例
可变长参数的实例
Python 3 X的keyword-only参数
min提神小例
满分
附加分
结论
通用set函数
模拟Python 3 X print函数
使用keyword-only参数
请留意:关键字参数
本章小结
本章习题
习题解答
第19章 函数的高级话题
函数设计概念
递归函数
用递归求和
编码替代方案
循环语句vs递归
处理任意结构
函数对象:属性和注解
间接函数调用:“一等”对象
函数自省
函数属性
Python 3 X中的函数注解
匿名函数:lambda
lambda表达式基础
为什么使用lambda
如何(不)让Python代码变得晦涩难懂
作用域:lambda也能嵌套
请留意:lambda回调
函数式编程工具
在可迭代对象上映射函数:map
选择可迭代对象中的元素:filter
合并可迭代对象中的元素:reduce
本章小结
本章习题
习题解答
第20章 推导和生成
列表推导与函数式编程工具
列表推导与map
使用filter增加测试和循环嵌套
示例:列表推导与矩阵
不要滥用列表推导:简单胜于复杂(KISS)
请留意:列表推导和map
生成器函数与表达式
生成器函数:yield vs return
生成器表达式:当可迭代对象遇见推导语法
生成器函数vs生成器表达式
生成器是单遍迭代对象
Python 3.3 的yield from扩展
内置类型、工具和类中的值生成
实例:生成乱序序列
不要过度使用生成器:明确胜于隐晦(EIBTI)
示例:用迭代工具模拟zip和map
为什么你要注意:单遍迭代
推导语法总结
作用域及推导变量
理解集合推导和字典推导
集合与字典的扩展推导语法
本章小结
本章习题
习题解答
第21章 基准测试
计时迭代可选方案
自己编写的计时模块
3.3 版本中新的计时器调用
计时脚本
计时结果
计时模块可选方案
其他建议
用timeit为迭代和各种Python计时
timeit基础用法
基准测试模块和脚本:timeit
基准测试脚本结果
基准测试的更多乐趣
其他基准测试主题:pystones
函数陷阱
局部变量是被静态检测的
默认值参数和可变对象
没有return语句的函数
其他函数陷阱
本章小结
本章习题
习题解答
第四部分练习题
第五部分 模块和包
第22章 模块:宏伟蓝图
为什么使用模块
Python程序架构
如何组织一个程序
导入和属性
标准库模块
import如何工作
1 搜索
2 编译(可选)
3 运行
字节码文件:Python 3.2 及以上版本的__pycache__
实际应用中的字节码文件模型
模块搜索路径
配置搜索路径
搜索路径的变化
sys.path列表
模块文件选择
第三方工具:distutils
本章小结
本章习题
习题解答
第23章 模块代码编写基础
模块的创建
模块文件名
其他种类的模块
模块的使用
import语句
from语句
from 语句
导入只发生一次
import和from是赋值语句
import和from的等价性
from语句潜在的陷阱
模块命名空间
文件产生命名空间
命名空间字典:dict
属性名称的点号运算
导入与作用域
命名空间的嵌套
重新加载模块
reload基础
reload示例
请留意:模块重新加载
本章小结
本章习题
习题解答
第24章 模块包
包导入基础
包和搜索路径设置
init.py包文件
包导入示例
包的from语句与包的import语句
为什么要使用包导入
三个系统的故事
请留意:模块包
包相对导入
Python 3 X中的变化
相对导入基础知识
为什么使用相对导入
相对导入的适用情况
模块查找规则总结
相对导入的实际应用
包相对导入的陷阱:混合使用
Python 3.3 中的命名空间包
命名空间包的语义
对常规包的影响:可选的__init__.py
命名空间包的实际应用
命名空间包嵌套
文件仍然优先于路径
本章小结
本章习题
习题解答
第25章 高级模块话题
模块设计概念
模块中的数据隐藏
使 * 的破坏最小化:_X和__all__
启用未来语言特性:future
混合使用模式:name__和__main
以__name__进行单元测试
示例:双模式代码
货币符号:Unicode的应用
文档字符串:模块文档的应用
修改模块搜索路径
import语句和from语句的as扩展
示例:模块即是对象
用名称字符串导入模块
运行代码字符串
直接调用:两种方式
示例:传递性模块重载译注1
递归重载器
另外的代码
模块陷阱
模块名称冲突:包和包相对导入
顶层代码中语句次序很重要
from复制名称,而不是链接
from 会让变量含义模糊化
reload不能作用于from导入
reload、from以及交互式测试
递归形式的from导入可能无法工作
本章小结
本章习题
习题解答
第五部分练习题
封底
📜 SIMILAR VOLUMES
<p>Google和YouTube由于Python的高可适应性、易于维护以及适合于快速开发而采用它。如果你想要编写高质量、高效的并且易于与其他语言和工具集成的代码,《Python学习手册:第4 版》将帮助你使用Python快速实现这一点,不管你是编程新手还是Python初学者。本书是易于掌握和自学的教程,根据作者Python专家Mark Lutz的著名培训课程编写而成。</p> <p>《Python学习手册:第4版》每一章都包含关于Python语言的关键内容的独立的一课,并且包含了一个独特的“练习题”部分,其中带有实际的练习和测试,以便你可以练习新的技能并随着学习而测试自己的理解。你会发现众
<p>Google和YouTube由于Python的高可适应性、易于维护以及适合于快速开发而采用它。如果你想要编写高质量、高效的并且易于与其他语言和工具集成的代码,《Python学习手册:第4 版》将帮助你使用Python快速实现这一点,不管你是编程新手还是Python初学者。本书是易于掌握和自学的教程,根据作者Python专家Mark Lutz的著名培训课程编写而成。</p> <p>《Python学习手册:第4版》每一章都包含关于Python语言的关键内容的独立的一课,并且包含了一个独特的“练习题”部分,其中带有实际的练习和测试,以便你可以练习新的技能并随着学习而测试自己的理解。你会发现众多
<p>《Python学习手册(第3版)》讲述了:Python可移植、功能强大、易于使用,是编写独立应用程序和脚本应用程序的理想选择。无论你是刚接触编程或者刚接触Python,通过学习《Python学习手册(第3版)》,你可以迅速高效地精通核心Python语言基础。读完《Python学习手册(第3版)》,你会对这门语言有足够的了解,从而可以在你所从事的任何应用领域中使用它。</p> <p>《Python学习手册(第3版)》是作者根据过去10年用于教学而广为人知的培训课程的材料编写而成的。除了有许多详实说明和每章小结之外,每章还包括一个头脑风暴:这是《Python学习手册(第3版)》独特的一部分
书签已装载, 书签制作方法请找 [email protected] 完全免费 本书是经典C语言参考手册的最新版,在强调正确性、可移植性和可维护性的基础上,对C语言的具体细节、运行库以及C语言编程风格做了完整、准确的描述。 本书涵盖了传统C语言、C89、C95、C99等所有C语言版本的实现,同时讨论了C++与C语言兼容的部分。全书自上而下介绍了C语言的词法结构、预处理器、声明、类型表达式、语句、函数和运行库,是所有C语言编程人员必备的参考书。