Python中文网

Python Cookbook(第2版)中文版

cnpython359

推荐编程书籍:Python Cookbook(第2版)中文版,由人民邮电出版社2010-05-01月出版发行,本书编译以及作者信息 为:[美] 马特利(Martelli A.) 编,高铁军 译,此次为第1次发行, 国际标准书号为:9787115222664,品牌为异步图书, 这本书采用平装开本为16开,纸张采为胶版纸,全书共有756页字数万字,是本Python 编程相关非常不错的书。

此书内容摘要

《Python Cookbook(第2版)中文版》介绍了Python应用在各个领域中的一些使用技巧和方法,从最基本的字符、文件序列、字典和排序,到进阶的面向对象编程、数据库和数据持久化、XML处理和Web编程,再到比较高级和抽象的描述符、装饰器、元类、迭代器和生成器,均有涉及。书中还介绍了一些第三方包和库的使用,包括Twisted、GIL、PyWin32等。

《Python Cookbook(第2版)中文版》覆盖了Python应用中的很多常见问题,并提出了通用的解决方案。书中的代码和方法具有很强的实用性,可以方便地应用到实际的项目中,并产生立竿见影的效果。尤为难得的是,《Python Cookbook(第2版)中文版》的各位作者都具有丰富的业界实践经验,因此,《Python Cookbook(第2版)中文版》不仅给出了对各种问题的解决方案,同时还体现了很多专家的思维方式和良好的编程习惯,与具体的细节性知识相比,这部分内容无疑是《Python Cookbook(第2版)中文版》的精华。

《Python Cookbook(第2版)中文版》适合具有一定Python基础的读者阅读参考。

关于此书作者

暂无.

编辑们的推荐

《Python Cookbook(第2版)中文版》是在Python程序员圈子中备受推崇的一部著作。在《Python Cookbook(第2版)中文版》中,你会发现很多常见Python编程问题的实用解决方案,而这些方案来自Python社区。几年来,Python程序员在 ActiveState建立的在线Python Cookbook贡献的代码和文章构成了《Python Cookbook(第2版)中文版》的主体。这些代码和解决方案都经历过实践的检验,被反复地审查、精练和加强,并最终汇集到《Python Cookbook(第2版)中文版》中。《Python Cookbook(第2版)中文版》包含了三百多个解决方案和技巧,主要覆盖以下主题:搜索和排序;操纵文本;文件处理;面向对象编程;多线程编程;系统管理;Web编程;网络编程;XML处理;分布式编程;调试和测试;元编程。《Python Cookbook(第2版)中文版》中所有的方案和技巧都是根据不同的主题来组织的。每章以一段引言开始,这些引言的作者都是Python社区中知名的杰出人物。《Python Cookbook(第2版)中文版》的主要编辑是Alex Martelli他也是Python in a Nutshell一书的作者。Anna MartelliRavensCroft是一位热心的Python用户和会议发言者。ACtiveState的David Ascher是LearningPython一书的合著者之一。Python之父Guido van Rossum为《Python Cookbook(第2版)中文版》第13章撰写了引言。

Python Cookbook(第2版)中文版图书的目录

第1章 文本
引言 1
1.1 每次处理一个字符
1.2 字符和字符值之间的转换
1.3 测试一个对象是否是类字符串
1.4 字符串对齐
1.5 去除字符串两端的空格
1.6 合并字符串
1.7 将字符串逐字符或逐词反转
1.8 检查字符串中是否包含某字符集合中的字符
1.9 简化字符串的translate方法的使用
1.10 过滤字符串中不属于指定集合的字符
1.11 检查一个字符串是文本还是二进制
1.12 控制大小写
1.13 访问子字符串
1.14 改变多行文本字符串的缩进
1.15 扩展和压缩制表符
1.16 替换字符串中的子串
1.17 替换字符串中的子串-Python 2.
1.18 一次完成多个替换
1.19 检查字符串中的结束标记
1.20 使用Unicode来处理国际化文本
1.21 在Unicode和普通字符串之间转换
1.22 在标准输出中打印Unicode字符
1.23 对Unicode数据编码并用于XML和HTML
1.24 让某些字符串大小写不敏感
1.25 将HTML文档转化为文本显示到UNIX终端上

第2章 文件
引言
2.1 读取文件
2.2 写入文件
2.3 搜索和替换文件中的文本
2.4 从文件中读取指定的行
2.5 计算文件的行数
2.6 处理文件中的每个词
2.7 随机输入/输出
2.8 更新随机存取文件
2.9 从zip文件中读取数据
2.10 处理字符串中的zip文件
2.11 将文件树归档到一个压缩的tar文件
2.12 将二进制数据发送到Windows的标准输出
2.13 使用C++的类iostream语法
2.14 回退输入文件到起点
2.15 用类文件对象适配真实文件对象
2.16 遍历目录树
2.17 在目录树中改变文件扩展名
2.18 从指定的搜索路径寻找文件
2.19 根据指定的搜索路径和模式寻找文件
2.20 在Python的搜索路径中寻找文件
2.21 动态地改变Python搜索路径
2.22 计算目录间的相对路径
2.23 跨平台地读取无缓存的字符
2.24 在Mac OS X平台上统计PDF文档的页数
2.25 在Windows平台上修改文件属性
2.26 从OpenOffice.org文档中提取文本
2.27 从微软Word文档中抽取文本
2.28 使用跨平台的文件锁
2.29 带版本号的文件名
2.30 计算CRC-64循环冗余码校验

第3章 时间和财务计算
引言
3.1 计算昨天和明天的日期
3.2 寻找上一个星期五
3.3 计算日期之间的时段
3.4 计算歌曲的总播放时间
3.5 计算日期之间的工作日
3.6 自动查询节日
3.7 日期的模糊查询
3.8 检查夏令时是否正在实行
3.9 时区转换
3.10 反复执行某个命令
3.11 定时执行命令
3.12 十进制数学计算
3.13 将十进制数用于货币处理
3.14 用Python实现的简单加法器
3.15 检查信用卡校验和
3.16 查看汇率

第4章 Python技巧
引言
4.1 对象拷贝
4.2 通过列表推导构建列表
4.3 若列表中某元素存在则返回之
4.4 循环访问序列中的元素和索引
4.5 在无须共享引用的条件下创建列表的列表
4.6 展开一个嵌套的序列
4.7 在行列表中完成对列的删除和排序
4.8 二维阵列变换
4.9 从字典中取值
4.10 给字典增加一个条目
4.11 在无须过多援引的情况下创建字典
4.12 将列表元素交替地作为键和值来创建字典
4.13 获取字典的一个子集
4.14 反转字典
4.15 字典的一键多值
4.16 用字典分派方法和函数
4.17 字典的并集与交集
4.18 搜集命名的子项
4.19 用一条语句完成赋值和测试
4.20 在Python中使用printf
4.21 以指定的概率获取元素
4.22 在表达式中处理异常
4.23 确保名字已经在给定模块中被定义

第5章 搜索和排序
引言
5.1 对字典排序
5.2 不区分大小写对字符串列表排序
5.3 根据对象的属性将对象列表排序
5.4 根据对应值将键或索引排序
5.5 根据内嵌的数字将字符串排序
5.6 以随机顺序处理列表的元素
5.7 在增加元素时保持序列的顺序
5.8 获取序列中最小的几个元素
5.9 在排序完毕的序列中寻找元素
5.10 选取序列中最小的第n个元素
5.11 三行代码的快速排序
5.12 检查序列的成员
5.13 寻找子序列
5.14 给字典类型增加排名功能
5.15 根据姓的首字母将人名排序和分组

第6章 面向对象编程
引言
6.1 温标的转换
6.2 定义常量
6.3 限制属性的设置
6.4 链式字典查询
6.5 继承的替代方案-自动托管
6.6 在代理中托管特殊方法
6.7 有命名子项的元组
6.8 避免属性读写的冗余代码
6.9 快速复制对象
6.10 保留对被绑定方法的引用且支持垃圾回收
6.11 缓存环的实现
6.12 检查一个实例的状态变化
6.13 检查一个对象是否包含某种必要的属性
6.14 实现状态设计模式
6.15 实现单例模式
6.16 用Borg惯用法来避免“单例”模式
6.17 Null对象设计模式的实现
6.18 用_ _init_ _参数自动初始化实例变量
6.19 调用超类的_ _init_ _方法
6.20 精确和安全地使用协作的超类调用

第7章 持久化和数据库
引言
7.1 使用marshal模块序列化数据
7.2 使用pickle和cPickle模块序列化数据
7.3 在Pickling的时候压缩
7.4 对类和实例使用cPickle模块
7.5 Pickling被绑定方法
7.6 Pickling代码对象
7.7 通过shelve修改对象
7.8 使用Berkeley DB数据库
7.9 访问MySQL数据库
7.10 在MySQL数据库中储存BLOB
7.11 在PostgreSQL中储存BLOB
7.12 在SQLite中储存BLOB
7.13 生成一个字典将字段名映射为列号
7.14 利用dtuple实现对查询结果的灵活访问
7.15 打印数据库游标的内容
7.16 适用于各种DB API模块的单参数传递风格
7.17 通过ADO使用Microsoft Jet
7.18 从Jython Servlet访问JDBC数据库
7.19 通过Jython和ODBC获得Excel数据

第8章 调试和测试
引言
8.1 阻止某些条件和循环的执行
8.2 在Linux上测量内存使用
8.3 调试垃圾回收进程
8.4 捕获和记录异常
8.5 在调试模式中跟踪表达式和注释
8.6 从traceback中获得更多信息
8.7 当未捕获异常发生时自动启用调试器
8.8 简单的使用单元测试
8.9 自动运行单元测试
8.10 在Python 2.4中使用doctest和unittest
8.11 在单元测试中检查区间

第9章 进程、线程和同步
引言
9.1 同步对象中的所有方法
9.2 终止线程
9.3 将Queue.Queue用作优先级队列
9.4 使用线程池
9.5 以多组参数并行执行函数
9.6 用简单的消息传递协调线程
9.7 储存线程信息
9.8 无线程的多任务协作
9.9 在Windows中探测另一个脚本实例的运行
9.10 使用MsgWaitForMultipleObjects处理Windows消息
9.11 用popen驱动外部进程
9.12 获取UNIX Shell命令的输出流和错误流
9.13 在UNIX中fork一个守护进程

第10章 系统管理
引言

10.1 生成随机密码
10.2 生成易记的伪随机密码
10.3 以POP服务器的方式验证用户
10.4 统计Apache中每个IP的点击率
10.5 统计Apache的客户缓存的命中率
10.6 在脚本中调用编辑器
10.7 备份文件
10.8 选择性地复制邮箱文件
10.9 通过邮箱创建一个邮件地址的白名单
10.10 阻塞重复邮件
10.11 检查你的Windows声音系统
10.12 在Windows中注册和反注册DLL
10.13 检查并修改Windows自动运行任务
10.14 在Windows中创建共享
10.15 连接一个正在运行的Internet Explorer实例
10.16 读取Microsoft Outlook Contacts
10.17 在Mac OS X中收集详细的系统信息

第11章 用户界面
引言
11.1 在文本控制台中显示进度条
11.2 避免在编写回调函数时使用lambda
11.3 在tkSimpleDialog函数中使用默认值和区间
11.4 给Tkinter列表框增加拖曳排序能力
11.5 在Tkinter部件中输入一个重音字符
11.6 在Tkinter中嵌入内联的GIF
11.7 转换图片格式
11.8 在Tkinter中实现一个秒表
11.9 用线程实现GUI和异步I/O 的结合
11.10 在Tkinter中使用IDLE的 Tree部件
11.11 在Tkinter Listbox中支持单行多值
11.12 在Tkinter部件之间复制Geometry方法和选项
11.13 在Tkinter中实现一个带标签的记事本
11.14 使用wxPython实现带面板的记事本
11.15 在Jython中实现一个ImageJ插件
11.16 用Swing和Jython来通过URL查看图片
11.17 在Mac OS中获得用户输入
11.18 程序化地创建Python Cocoa GUI
11.19 用IronPython实现淡入窗口

第12章 XML处理
引言
12.1 检查XML的格式完好性
12.2 计算文档中标签的个数
12.3 获得XML文档中的文本
12.4 自动探测XML的编码
12.5 将一个XML文档转化成Python对象树
12.6 从XML DOM节点的子树中删除仅有空白符的文本节点
12.7 解析Microsoft Excel的XML
12.8 验证XML文档
12.9 过滤属于指定命名空间的元素和属性
12.10 用SAX合并连续的文本事件
12.11 使用MSHTML来解析XML或HTML

第13章 网络编程
引言
13.1 通过Socket数据报传输消息
13.2 从Web抓取文档
13.3 过滤FTP站点列表
13.4 通过SNTP协议从服务器获取时间
13.5 发送HTML邮件
13.6 在MIME消息中绑入文件
13.7 拆解一个分段MIME消息
13.8 删除邮件消息中的附件
13.9 修复Python 2.4的email.FeedParser 解析的消息
13.10 交互式地检查POP3邮箱
13.11 探测不活动的计算机
13.12 用HTTP监视网络
13.13 网络端口的转发和重定向
13.14 通过代理建立SSL隧道
13.15 实现动态IP协议
13.16 登录到IRC并将消息记录到磁盘
13.17 访问LDAP服务

第14章 Web编程
引言
14.1 测试CGI是否在工作
14.2 用CGI脚本处理URL
14.3 用CGI上传文件
14.4 检查web页面的存在
14.5 通过HTTP检查内容类型
14.6 续传HTTP下载文件
14.7 抓取Web页面时处理Cookie
14.8 通过带身份验证的代理进行HTTPS导航
14.9 用Jython实现Servlet
14.10 寻找Internet Explorer的cookie
14.11 生成OPML文件
14.12 聚合RSS Feed
14.13 通过模板将数据放入Web页面
14.14 在Nevow中呈现任意对象

第15章 分布式编程
引言
15.1 实现一个XML-RPC方法调用
15.2 服务XML-RPC请求
15.3 在Medusa中使用XML-RPC
15.4 允许XML-RPC服务被远程终止
15.5 SimpleXMLRPCServer的一些细节
15.6 给一个XML-RPC服务提供一个wxPython GUI
15.7 使用Twisted的Perspective Broker
15.8 实现一个CORBA服务和客户
15.9 使用telnetlib执行远程登录
15.10 使用SSH执行远程登录
15.11 通过HTTPS验证一个SSL客户端

第16章 关于程序的程序
引言
16.1 验证字符串是否代表着一个合法的数字
16.2 导入一个动态生成的模块
16.3 导入一个名字在运行时被确定的模块
16.4 将参数和函数联系起来
16.5 组合函数
16.6 使用内建的Tokenizer给Python源码上色
16.7 合并和拆解Token
16.8 检查字符串是否有平衡的圆括号
16.9 在Python中模拟枚举
16.10 在创建列表推导时引用它自身
16.11 自动化py2exe将脚本编译成Windows可执行文件的过程
16.12 在UNIX中将主脚本和模块绑成一个可执行文件

第17章 扩展和嵌入
引言
17.1 实现一个简单的扩展类型
17.2 用Pyrex实现一个简单的扩展类型
17.3 在Python中使用C++库
17.4 调用Windows DLL的函数
17.5 在多线程环境中使用SWIG生成的模块
17.6 用PySequence_Fast将Python序列转为 C数组
17.7 用迭代器逐个访问Python序列的元素
17.8 从Python可调用的C函数中返回暂无.
17.9 用gdb调试动态载入的C扩展
17.10 调试内存问题

第18章 算法
引言
18.1 消除序列中的重复
18.2 在保留序列顺序的前提下消除其中的重复
18.3 生成回置采样
18.4 生成无回置的抽样
18.5 缓存函数的返回值
18.6 实现一个FIFO容器
18.7 使用FIFO策略来缓存对象
18.8 实现一个Bag(Multiset)收集类型
18.9 在Python模拟三元操作符
18.10 计算素数
18.11 将整数格式化为二进制字符串
18.12 以任意数为基将整数格式化为字符串
18.13 通过法雷分数将数字转成有理数
18.14 带误差传递的数学计算
18.15 以最大精度求和
18.16 模拟浮点数
18.17 计算二维点集的凸包和直径

第19章 迭代器和生成器
引言
19.1 编写一个类似range的浮点数递增的函数
19.2 从任意可迭代对象创建列表
19.3 生成Fibonacci序列
19.4 在多重赋值中拆解部分项
19.5 自动拆解出需要的数目的项
19.6 以步长n将一个可迭代对象切成n片
19.7 通过重叠窗口循环序列
19.8 并行地循环多个可迭代对象
19.9 循环多个可迭代对象的矢量积
19.10 逐段读取文本文件
19.11 读取带有延续符的行
19.12 将一个数据块流处理成行流
19.13 用生成器从数据库中抓取大记录集
19.14 合并有序序列
19.15 生成排列、组合以及选择
19.16 生成整数的划分
19.17 复制迭代器
19.18 迭代器的前瞻
19.19 简化队列消费者线程
19.20 在另一个线程中运行迭代器
19.21 用itertools.groupby来计算汇总报告

第20章 描述符、装饰器和元类
引言
20.1 在函数调用中获得常新的默认值
20.2 用嵌套函数来编写property属性
20.3 给属性值起别名
20.4 缓存属性值
20.5 用同一个方法访问多个属性
20.6 封装一个方法来给类增加功能
20.7 增强所有方法来给类增加功能
20.8 在运行时给一个类实例添加方法
20.9 检查接口的实现
20.10 在自定义元类中正确地使用_ _new_ _和_ _init_ _
20.11 允许对List的可变方法的链式调用
20.12 通过更紧凑的语法使用协作的超类调用
20.13 不使用_ _init_ _来初始化实例属性
20.14 实例属性的自动初始化
20.15 重新加载时自动更新类实例
20.16 在编译时绑定常量
20.17 解决元类冲突

部分内容试读

这本书不是一本典型的O’Reilly风格的书,而是一本集合了多个作者的手稿的作品。实际上,这也是一种将开源开发的方式应用到书籍出版业的尝试。Python社区有超过300个成员在本书中贡献了他们的心得和资料。在这里,我们作为编辑,想给你——本书的读者,介绍一些重要的背景资料,这些背景资料是关于此书是如何编著出来,以及这个过程和涉及的人,并提出一些关于这种崭新的风格的思考。


本书的构思
在2000年初,O’Reilly的主编Frank Willison联系到我(David Ascher),问我是否想写一本书。Frank曾是Learning Python一书的编辑,那本书是由我和Mark Lutz合著而成。由于当时我正在致力于Perl shop(ActiveState)一书的编写,实在没有精力再同时开始另一本书的工作。但我和Frank总是定期地通过E-mail或者聊天工具对该书的一些主题进行探讨。Frank有个主意,他受到Tom Chriistiansen和Nathan Torkington编写的Perl Cookbook一书的启发,认为出一本类似的Python Cookbook将会很有趣。

Frank想重复Perl Cookbook一书的成功,但他也认为应该让更多的人参与到此书的编写中。他的想法是,作为一本真正的cookbook,更多人的参与将会提供更多的思路、角度和品味。至于书籍的质量,他认为可以通过技术编辑的把关和O’Reilly严格的编辑流程来保障。
Frank和ActiveState的CEO Dick Hardt意识到Frank的目标和ActiveState的目标其实是殊途同归的。ActiveState的想法是为开源程序员创造一个网络社区,叫做ActiveState Programmer’s Network(ASPN)。

ActiveState有一个人气很高的网站,提供了很丰富和多样化的内容。ActiveState充分认识到开源社区具有很强大的力量,它能够提供最新和最准确的内容,无论多么生僻的方面均有涉及。

O’Reilly和ActiveState很快认识到他们的目标上的相似性,并且意识到双方合作是最好的达成目标的方式。他们想要实现的包括:

·创建一个由Python程序员提供素材的在线Python Cookbook,为Python程序员服务;
·出版一本包括了最好素材的书,该书由Python社区中的一些关键人物提供的材料和想法综合而成;
·双方通过完成这本书亦可学习到一种不同的著书模式。

关于此书评价

暂无.

书摘内容

3.心理定价策略这是一种根据顾客心理要求所采用的定价策略。每一件产品都能满足顾客某一方面的需求,其价值与顾客的心理感受有很大的关系。这就为心理定价策略的运用提供了基础,使得企业在定价时可以利用顾客心理因素,有意识地将产品价格定得高一些或低一些,以满足顾客生理的和心理的、物质的和精神的多方面需求。通过顾客对企业产品的偏爱或忠诚,诱导顾客增加购买,扩大市场销售获得最大效益,具体的心理定价策略如下:

(1)整数定价策略对于那些无法明确显示其内在质量的商品,顾客往往通过其价格的高低来判断其质量的好坏。在定价时,把产品的价格定成整数,不带尾数,使顾客产生“一分钱一分货”的感觉。但是。整数定价其价格的高并不是绝对的高,而只是凭借整数价格来给顾客造成高价的印象。

(2)尾数定价策略尾数定价策略是与整数定价策略正好相反的一种定价策略,是指企业利用消费者求廉的心理,在产品定价时取尾数,而不取整数的定价策略,它常常以双位数作尾数,尽可能在价格上不进位。

Python Cookbook(第2版)中文版最新最全的试读、书评、目录、简介信息由Python中文网整理提供。