新書推薦:
《
股市趋势技术分析(原书第11版)
》
售價:NT$
1010.0
《
汉匈战争全史
》
售價:NT$
454.0
《
恶的哲学研究(社会思想丛书)
》
售價:NT$
500.0
《
当你沉默时(悬疑推理 反PUA 反家暴 女性独立小说,揭秘情感PUA的真相,女性自我救赎的文学典范)
》
售價:NT$
255.0
《
不止江湖
》
售價:NT$
449.0
《
天才留步!——从文艺复兴到新艺术运动(一本关于艺术天才的鲜活故事集,聚焦艺术史的高光时刻!)
》
售價:NT$
704.0
《
双城史
》
售價:NT$
505.0
《
冯友兰和青年谈心系列:不是问题的问题(哲学大师冯友兰和年轻人谈心,命运解读)
》
售價:NT$
254.0
|
編輯推薦: |
本书由Python社区的大神Kenneth Reitz发起并组织编写,由社区数百名开发者集体奉献。*的特色在于,近乎完整地总结了在Python编程中会用到的各种实践技巧和经验,涵盖众多主流的应用场景,并告诉你如何提高效率、避免踩坑、编写高质量的代码。
本书涉及开发环境和部署、编写符合Pythonic品味的代码、各应用场景下主流的Python解决方案、学习资源推荐等多个方面,有足够的广度也有合适的深度。不仅如此,书中还分享了阅读代码的思路、方法和技巧,告诉你为什么这么设计并清晰地呈现了项目结构图,有极强的学习价值。
它就像一位导师,从你步入Python编程开发的大门时起,便详细地告诉你哪些应该做,哪些不应该做以及为什么这样选择,如何做技术选型、各自的优缺点让你在零起步的基础上,便能安心地、迅速地上手实践。
本书不仅适合初学者入门,也适合资深人士作为案头参考。
|
內容簡介: |
本书是Python用户的一本百科式学习指南,由Python社区数百名成员协作奉献。全书内容分为三大部分。*部分是关于如何配置使用Python编辑工具的;第二部分深入学习地道Python风格的代码范例;第三部分研究Python社区常用的一些代码库。本书适合有一定Python基础的人员学习,帮助你迅速从小工修炼成专家,编写出高质量的代码!
|
關於作者: |
Kenneth Reitz
Python界的大神、Python软件基金会会员,因众多开源项目而闻名(其中最著名的是 Requests: HTTP for Humans),高颜值的摄影爱好者,电子音乐制作师,健身减肥成功的励志男曾任Heroku公司Python架构负责人,现任职于DigitalOcean。
Tanya Schlusser
数据决策方向的独立顾问,为学生和企业团队提供的数据科学培训时长已超过1000小时,并照顾患有阿兹海默症的妈妈。
|
目錄:
|
目录
前言 ........................................................................................... xix
第1 部分 起步
第1 章 选择一个解释器 ........................................................................ 3
Python 2 与Python 3 的状况对比 ..........................................................................3
建议 .......................................................................................................................3
那就选择Python 3 吗 .............................................................................................4
Python 的不同实现 ................................................................................................4
CPython ...........................................................................................................5
Stackless ..........................................................................................................5
PyPy ................................................................................................................5
Jython ..............................................................................................................5
IronPython .......................................................................................................6
PythonNet ........................................................................................................6
Skulpt ..............................................................................................................6
MicroPython ....................................................................................................7
第2 章 恰当地安装Python ................................................................... 9
在Mac OS X 上安装Python ..................................................................................9
Setuptools 和pip ........................................................................................... 11
virtualenv ...................................................................................................... 11
在Linux 上安装Python .......................................................................................12
Setuptools 和pip ...........................................................................................12
开发工具 .......................................................................................................13
virtualenv ......................................................................................................14
在Windows 上安装Python ..................................................................................15
Setuptools 和pip ...........................................................................................17
virtualenv ......................................................................................................17
商业化Python 二次发行版 ..................................................................................18
第3 章 搭建开发环境 ......................................................................... 21
文本编辑器 ..........................................................................................................21
Sublime Text ..................................................................................................22
Vim ................................................................................................................23
Emacs ............................................................................................................25
TextMate........................................................................................................26
Atom .............................................................................................................26
Code ..............................................................................................................26
IDE.......................................................................................................................27
PyCharmIntelliJ IDEA ..................................................................................28
Aptana Studio 3Eclipse LiClipse PyDev .....................................................29
WingIDE........................................................................................................29
Spyder ...........................................................................................................30
NINJA-IDE ....................................................................................................30
Komodo IDE..................................................................................................30
Eric(Eric Python IDE) .................................................................................31
Visual Studio .................................................................................................31
增强型交互式工具 ...............................................................................................32
IDLE .............................................................................................................32
IPython ..........................................................................................................32
bpython ..........................................................................................................33
环境隔离工具 ......................................................................................................33
虚拟环境 .......................................................................................................33
pyenv .............................................................................................................35
Autoenv .........................................................................................................36
virtualenvwrapper ..........................................................................................36
Buildout .........................................................................................................37
Conda ............................................................................................................38
Docker ...........................................................................................................39
第2 部分 步入正题
第4 章 编写高质量的代码 ................................................................... 43
代码风格 ..............................................................................................................43
PEP 8 .............................................................................................................43
PEP 20(又名Python 之禅) ..........................................................................44
一般性建议 ...................................................................................................45
约定 ...............................................................................................................52
习语 ...............................................................................................................55
常见陷阱 .......................................................................................................58
组织好项目的结构 ...............................................................................................61
模块 ...............................................................................................................61
包 ..................................................................................................................65
面向对象编程 ................................................................................................66
装饰器 ...........................................................................................................67
动态
|
內容試閱:
|
译者序
从毕业至今,我在互联网行业从事软件研发工作已将近五年。这五年间,我做过后端开发、前端开发、大数据处理等,使用过的编程语言包括Python、PHP、Go、Java、JavaScript 等。
虽说编程语言各异,但是我使用它们来写各种项目的代码始终坚持两点:代码可读性和自解释性 自文档性(self-documentation)。这很大程度上应该是受到Python 语言设计哲学的影响追求简单、易读、易懂的代码。
很多人可能会认为这两点其实均可归结为代码可读性一点,但我想做点区分。代码可读性突出对代码阅读者视觉上的影响,即在视觉效果上是否存在对阅读者不必要的理解干扰,比如必要的空行、变量定义与使用之间的距离、函数体 逻辑分支是否过长、逻辑表达是否直观等。可读性高的代码通常都非常漂亮,令人赏心悦目。自解释性代码则更
侧重语义层面,比如变量名称、函数名称、类名是否恰当,函数、方法、API 职责是否单一,工程目录结构、包、模块拆分是否符合高内聚、低耦合原则等。写代码以这两点为原则,可以极大地提高个人以及团队的工作效率和工作质量。
本书作者Kenneth Reitz 于2011 年发布Requests 这个HTTP 请求工具库,提出forhumans的理念,强调软件 工具库应该友好易用,这一理念本质上是对Python 哲学(特别是上述两点)的一种引申和发扬。之后Reitz 在一些Python 大会上做技术分享,宣扬for humans的理念,对Python 社区产生了巨大影响。我在第一次用Requests 库之后,
便很少使用Python 标准库中的urllib 和urllib2 了,现在标准库文档中也特别建议开发者使用Requests。
因为对for humans理念的认同,也因为我经常使用Requests,所以当Reitz 在GitHub上邀请我翻译Requests 文档中文版时,我欣然接受,和本书的另一位译者邦杰共同翻译了Requests 文档的首个官方中文版。
在Reitz 发起The Hitchhikers Guide to Python!项目(也就是本书的社区开源版)后,我一直跟进阅读,收获巨大。后来得知这本开源书籍正式出版,欣喜若狂,辗转咨询多人,联系到刘皎老师,申请了本书的翻译工作。但是,后来发现翻译的工作量远远超出预估,除一些主观原因外,主要因为本书内容的广度和深度。
广度:本书由 Python 社区数百人共同创作而成,可以视作Python 小百科全书。第1~3 章指导读者按照自己的需求选择安装配置Python 版本 发行版、开发环境等。第7~11 章则针对不同的应用场景,从多个维度甄选并对比了大量的Python 库,读者可以按图索骥地做出自己的选择,从而节约大量的时间精力。因为译者的Python 开发经验主要集中在Web 开发和数据处理上,对于很多应用场景下的Python库不太熟悉,所以翻译之前花费了大量时间来学习和理解。
深度:针对 Python 新手的核心需求,本书探讨了大量的最佳实践。其中第4~5 章通过大量示例具体地阐释了Python 之禅:如何编写高质量的Python 代码,并精选若干高质量的知名Python 开源项目,详细介绍如何通过阅读源码来提升编程技术水平。虽说在Python 社区几乎人人都知道Python 之禅,但如何落实在开发实践中估计极少有人能说得清楚。对照书中的实例阐释,译者反复推敲Python 之禅的译文,最终敲定的译文也不是特别令自己满意。
相比原计划,本书最终延期近一年才翻译完成。除了歉意,我内心满是感谢:感谢邦杰中途友情加入,帮忙翻译了第4~6 章的初稿,这三章的难度和文字量都非常大;感谢编辑刘皎对我拖稿的次次容忍和耐心等待;感谢妻儿的理解,我欠了你们太多的陪伴。
虽然我已尽自己所能地保证译文质量,但是错误和瑕疵难免,在此也请读者原谅。希望你们阅读愉快!
夏永锋
写于上海
前言
Python 是一个大世界,大到让你难以置信!
本书不是教你如何学习Python 语言的(我们引用了大量优秀资源供你学习),而是一份
Python 社区推荐工具和最佳实践的(有态度的)业内指南。本书的目标读者是初级到中
级水平的Python 程序员,他们可能有志于使用Python 为开源项目做贡献、开启一段职
业生涯或开创一家公司,不过临时用用Python 的人也会发现第1 部分和第5 章的内容对
自己颇有帮助。
本书的第1 部分帮助读者选择适合各自场景的文本编辑器或交互式开发环境(例如,常
用Java 的读者可能偏爱Eclipse,用它安装Python 开发插件),并调研了其他可选择的
解释器,这些解释器也许可以满足那些你还不知道的Python 能够解决的需求(例如,
MicroPython 是基于ARM Cortex-M4 芯片的一个实现)。第2 部分重点介绍开源社区公
认的范例代码,展示地道的Python 代码风格,希望能够鼓励读者进一步深入阅读和尝试
开源代码。第3 部分简要地调研了大量的Python 社区常用库,让读者初步认识到目前
Python 涉及的领域。
本书纸质版的所有版税都捐赠给Django Girls,这是一个充满欢乐的全球性组织,旨在
组织免费的Django 和Python 讲习班,创建开源的在线教程,策划令人惊叹的技术体验
活动。如果有意愿,那么你可以从http:docs.python-guide.orgenlatestnotescontribute
上了解如何为本书的在线版本做贡献。
xx | 前言
本书的使用约定
这个图标标识一个提示或建议。
这个图标标识一个一般性注解。
这个图标标识一个警告信息。
Safari? 图书在线
Safari? 图书在线是一个点播式电子图书馆,以图书和视频的形式
展示来自技术和商业领域的世界权威作者的专业内容。
技术专家、软件开发者、Web 设计者及商业和创意专业人士都使用Safari? 图书在线作为
科研、解决问题、学习和认证培训的核心资源。
Safari? 图书在线为企业、政府部门、教育机构,以及个人提供一系列的购买计划。
其成员可以访问无数的书籍、培训视频及正式出版前的草稿,这些资源存放在一个
完全可检索的数据库中,资源来源于各大出版商,如OReilly Media、Prentice Hall
Professional、Addison-Wesley Professional、Microsoft Press、Sams、 Que、Peachpit
Press、Focal Press、Cisco Press、John Wiley & Sons、Syngress、Morgan Kaufmann、
IBM Redbooks、Packt、Adobe Press、FT Press、Apress、Manning、New Riders、
McGraw-Hill、Jones & Bartlett、Course Technology 等200 多家出版商。更多关于
Safari? 图书在线的信息,请访问https:www.safaribooksonline.com。
前言 | xxi
联系我们
请将对本书的评价和发现的问题通过如下地址通知出版社。
美国:
OReilly Media, Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
中国:
北京市西城区西直门南大街2 号成铭大厦C 座807 室(100035)
奥莱利技术咨询(北京)有限公司
我们提供了本书网页,上面列出了勘误表、示例和其他信息。请通过http:bit.lyrestful-
Web-clients 访问该页。
要给出本书意见或者询问技术问题,请发送邮件到bookquestions@oreilly.com。
更多有关书籍、课程、会议和新闻的信息,请见网站http:www.oreilly.com。
在Facebook 找到我们:http:facebook.comoreilly。
在Twitter 上关注我们:http:twitter.comoreillymedia。
在YouTube 上观看:http:www.youtube.comoreillymedia。
致谢
欢迎各位朋友阅读《Python 编程之美:最佳实践指南》。
据我所知,本书的成书方式是首创的:由一个作者(也就是我,Kenneth)设计策划,而
大部分内容由来自世界各地的数百人免费提供。人类有史以来很少有过以这种技术方式
达成这种规模的美妙协作。
本书得以完成,归功于以下3 方的共同努力。
1. 社区
爱把我们凝聚在一起,克服了万千困难。
xxii | 前言
2. 软件项目
Python、Sphinx、Alabaster 和Git。
3. 在线服务
GitHub 和Read the Docs。
最后,我想对Tanya 致以衷心的感谢,她克服了全部的艰难困苦,把这项工作转变成
图书形式,并将一切准备妥当交付出版社正式出版。还有极其出色的OReilly 团队:
Dawn、Jasmine、Nick、Heather、Nicole、Meg,以及其他许许多多工作在幕后的人,
感谢你们的付出,让本书如此完美。
|
|