Python Cookbook

David Beazley, Brian K. Jones

出版时间

2013-05-29

ISBN

9781449340377

评分

★★★★★
书籍介绍
与其说这是一本Python教程,不如说它是一部写给有一定基础的开发者的实战手册。它不从头讲解语法,而是直接针对编程中真实遇到的场景——对象拷贝该用浅拷贝还是深拷贝、字符串替换如何借助translate、大文件是否一次性读入内存——给出可即取即用的解法。读者普遍把它当作查用手册:遇到手足无措的处境时翻一翻,或先快速建立知识框架,再反复参考。书中大量精炼的代码片段实战价值突出,适合碎片时间强化记忆。需要提醒的是,它并非入门读物,部分章节泛而不精、彼此交叉,初学者最好先借助其他资源打底。对追求高效、灵活、可扩展系统的开发者而言,它更像一座可随时回访的宝库。
AI导读
核心看点
  • 全面更新Python 3,涵盖数据结构、算法、字符串处理等核心主题。
  • 提供大量实战代码片段,解决编程中遇到的具体问题和场景。
  • 深入讲解元编程、测试等高级特性,助力构建高效灵活的系统。
读者共识
  • 被誉为Python奇巧淫技大全,实战价值巨大,适合中高级读者。
  • 内容详实但略显碎片化,建议作为工具书常备,随时翻阅参考。
  • 代码示例丰富可直接复用,但部分细节需自行调查,需耐心研读。
精彩摘录
  • "对象拷贝 copy.copy 浅拷贝:虽然生成了一个新对象,但是对象内部的属性和内容仍然引用原对象。 copy.deepcopy:想修改的是对象内部的属性和内容时使用 类似于a=[ ]这样的语句,是对名字a做了重新绑定,但却不会影响原先绑定到a的对象。 为了拷贝一个可被拷贝(copyable)的对象o,该对象属于内建的Python类型t,可以简单的调用t(o)来创建拷贝。 字典:d.copy()相当于dict(d),推荐使用后者 没有必要拷贝那些不可改变的对象(字符串、数字、元组等) is检查对象是否相同;==操作则检查两个对象是否相等 假设你不确定两个名字a和b是分别指向不同的对象还是引用同"
  • "理解本节技巧的关键在于对Python标准库的string模块的maketrans函数以及字符串对象的translate方法的理解。translate应用于一个字符串并返回该字符串的一个拷贝,这个拷贝中的所有字符都按照传入的第一个参数(翻译表)制定的替换方式来替换,而且第二个参数制定的所有字符都要被删除。maketrans是创建翻译表的一个工具 函数。 本节的方法只适用于普通字符串,对于Unicode字符串则完全不适用。"
  • "'r'的一种变体是‘rU’,意味着将以支持“通用换行符”的文本模式读取文件:‘rU’模式可以用一种独立与该文件所用的断定约定的方式来读取文件,可以是UNIX方式,也可以是Windows方式,甚至是老的Mac方式。"
  • "除非要读取的文件非常巨大,不然一次性读出所有内容放进内存并进一步处理是最快和最方便的方法。"
  • "时间模块中有两个函数非常有用,strftime——它可以根据返回的时间元组构建一个字符串,以及strptime——与前者相反,它将解析给定的字符串并产生一个时间元组。"
  • "时间模块的最有一个重要函数是time.sleep,它使得肯一在Python程序中实现延时。……Python的版本则支持一个浮点数,并允许非整数秒的延时。"
  • "过早优化是万恶之源。"
  • "这种自我安排是一个很重要的概念,不仅仅用于和sched相关的应用,任何时候,如果你只有一次机会来计划一个事件,而没有周期性的机会来反复做此事,你都可以i考虑这种自我计划安排方式。(举个例子,Tkinter的after方法也正式以此种方式工作的,可以作为这种自我计划安排的一个应用典型)"
用户评论
来自Fluent Python的推荐。很多优秀的Snippets,实战价值巨大,适合快速阅读建立知识框架,然后频繁参考。推荐!
60
看过挺多遍了 每当觉得手足无措时就会翻一翻
阅读理解与实践
Python 参考书,遇到问题可以来查查有没有解决方案,当然现在用 Stack Overflow 也不错。
很好的工具书
务必看英文版
每一章都提供了 20 个左右的非常具体的问题场景,因而解答也看起来非常细节,但是细节中到处都体现了 Python 的高阶特性。如果有比较好的编程经验的话,可能反过来透过细节去思考 Python 的 smart 的处理方式受益会更多。
驯服蟒蛇的最(qi)佳(ji)实(yin)践(qiao)大集合,不少章节得反复读才能大致明白,先混个脸半熟,希望以后想吃的时候还能记得去哪里找菜谱。
下载
收藏