-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

Python編程之美:最佳實踐指南

( 簡體 字)
作者:夏永鋒,廖邦杰類別:1. -> 程式設計 -> Python
譯者:
出版社:電子工業出版社Python編程之美:最佳實踐指南 3dWoo書號: 49777
詢問書籍請說出此書號!

缺書
NT售價: 445

出版日:8/1/2018
頁數:320
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787121347573
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

譯者序

從畢業至今,我在互聯網行業從事軟件研發工作已將近五年。這五年間,我做過后端開發、前端開發、大數據處理等,使用過的編程語言包括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 Hitchhiker’s 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 講習班,創建開源的在線教程,策劃令人驚嘆的技術體驗
活動。
xx | 前言
本書的使用約定
這個圖標標識一個提示或建議。
這個圖標標識一個一般性注解。
這個圖標標識一個警告信息。
Safari? 圖書在線
Safari? 圖書在線是一個點播式電子圖書館,以圖書和視頻的形式
展示來自技術和商業領域的世界權威作者的專業內容。
技術專家、軟件開發者、Web 設計者及商業和創意專業人士都使用Safari? 圖書在線作為
科研、解決問題、學習和認證培訓的核心資源。
Safari? 圖書在線為企業、政府部門、教育機構,以及個人提供一系列的購買計劃。
其成員可以訪問無數的書籍、培訓視頻及正式出版前的草稿,這些資源存放在一個
完全可檢索的數據庫中,資源來源于各大出版商,如O’Reilly 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 多家出版商。
歡迎各位朋友閱讀《Python 編程之美:最佳實踐指南》。
據我所知,本書的成書方式是首創的:由一個作者(也就是我,Kenneth)設計策劃,而
大部分內容由來自世界各地的數百人免費提供。人類有史以來很少有過以這種技術方式
達成這種規模的美妙協作。
本書得以完成,歸功于以下3 方的共同努力。
1. 社區
愛把我們凝聚在一起,克服了萬千困難。
xxii | 前言
2. 軟件項目
Python、Sphinx、Alabaster 和Git。
3. 在線服務
GitHub 和Read the Docs。
最后,我想對Tanya 致以衷心的感謝,她克服了全部的艱難困苦,把這項工作轉變成
圖書形式,并將一切準備妥當交付出版社正式出版。還有極其出色的O’Reilly 團隊:
Dawn、Jasmine、Nick、Heather、Nicole、Meg,以及其他許許多多工作在幕后的人,
感謝你們的付出,讓本書如此完美。
內容簡介:

本書是Python用戶的一本百科式學習指南,由Python社區數百名成員協作奉獻。全書內容分為三大部分。第一部分是關于如何配置使用Python編輯工具的;第二部分深入學習地道Python風格的代碼范例;第三部分研究Python社區常用的一些代碼庫。本書適合有一定Python基礎的人員學習,幫助你迅速從小工修煉成專家,編寫出高質量的代碼!

目錄:

前言 ........... 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
PyCharm/IntelliJ IDEA ..........28
Aptana Studio 3/Eclipse+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
動態類型 .............68
可變類型和不可變類型 .........69
管理依賴 .............71
測試代碼 ..............72
測試的基礎知識 ............73
舉例說明 .............76
其他流行工具 ............80
文檔 .............82
項目文檔 .............82
項目配套發行文檔 ..........83
文檔字符串與塊注釋 ...........84
日志 .............84
在庫中使用logging ...........85

在應用中使用logging ...........86
選擇許可證 ............88
上游許可證 ...........88
許可證選項 ...........89
軟件許可相關的學習資源 .........90
第5 章 閱讀高質量的代碼 ......... 91
共同特征 ..............92
HowDoI ..............92
閱讀單文件腳本 ............93
取自HowDoI 的結構示例 .........96
取自HowDoI 的風格示例 .........97
Diamond .............99
閱讀一個更大的應用程序 .........99
取自Diamond 的結構示例 .......... 105
取自Diamond 的風格示例 .......... 109
Tablib ............. 111
閱讀一個小型庫 .......... 112
取自Tablib 的結構示例 .......... 115
取自Tablib 的風格示例 .......... 123
Requests ............. 126
閱讀一個更大的庫 .......... 126
取自Requests 的結構示例 .......... 130
取自Requests 的風格示例 .......... 134
Werkzeug ............. 139
閱讀一個工具包的代碼 ......... 140
取自Werkzeug 的風格示例 ......... 148
取自Werkzeug 的結構示例 ......... 149
Flask............. 156
閱讀一個框架的代碼 ........... 156
取自Flask 的風格示例 .......... 163
取自Flask 的結構示例 .......... 164

第6 章 交付高質量的代碼 ......... 169
有用的詞匯和概念 ........... 170
打包你的代碼 ............ 171
Conda ............ 171
PyPI ............. 171
凍結你的代碼 ............ 174
PyInstaller ........... 176
cx_Freeze ............ 178
py2app ............. 179
py2exe ............. 180
bbFreeze ............ 181
Linux 已構建分發包的打包技術 ........ 181
可執行的ZIP 文件 ........... 183
第3 部分 場景化指南
第7 章 用戶交互 .......... 187
Jupyter Notebooks 項目 .......... 187
命令行應用 ............ 188
圖形化用戶界面應用 ........... 196
窗口部件庫 ........... 196
游戲開發 ............. 202
Web 應用 ............ 203
Web 框架/ 微框架 ........... 203
Web 模板引擎 ........... 206
Web 部署 ............. 212
第8 章 代碼管理和改進 ........ 215
持續集成 ............ 215
系統管理 ............ 216
服務器自動化 ............ 218
系統和任務監控 .......... 222
加速 ............. 225

與C/C++/FORTRAN 庫進行交互 ....... 235
第9 章 軟件接口 .......... 239
Web 客戶端庫 ............ 240
Web API ............ 240
數據序列化 ............ 245
分布式系統 ............ 248
網絡編程 ............. 248
密碼技術 ............ 254
第10 章 數據操作 .......... 261
科學應用 ............ 262
文本操作和文本挖掘 ........... 266
Python 標準庫中的字符串工具 ......... 266
圖像操作 ............. 269
第11 章 數據持久化 ......... 273
結構化文件 ............ 273
數據庫接口庫 ............ 274
附錄A 補充說明 ......... 289
序: