Python 入门建议
轉載自:http://zengrong.net/post/2335.htm?comefrom=http://blogread.cn/news/
- 本站文章除注明轉載外,均為本站原創或者翻譯。
- 本站文章歡迎各種形式的轉載,但請18歲以上的轉載者注明文章出處,尊重我的勞動,也尊重你的智商;
- 本站部分原創和翻譯文章提供markdown格式源碼,歡迎使用文章源碼進行轉載;
- 本博客采用?WPCMD?維護;
- 本文標題:Python 入門建議
- 本文鏈接:http://zengrong.net/post/2335.htm
2015-08-18 更新:加入兩本在線書到“沒有終點“部分。
對于我來說,Python 似乎已經入門了。那就把我的入門建議寫出來吧,能讓看到的人避免走彎路就好。下面的標題按時間順序排列。
Python2 還是 Python3 ?
毫無疑問,Python2 是輝煌,Python3 是未來。不要相信網上那些大牛吐槽 Python3 速度慢、兼容性差、庫少等等言論了,仔細看看那些言論的發表時間。現在都特么已經2015了好么。
如果某個庫到現在還沒有兼容 Python3,那么放棄它就是了,因為它的作者已經拋棄了它。
使用 Python3 ,你不會再碰到惡心的 i18n 問題,也不會再面對那些奇怪的2包名了。
選 Python3 吧,因為你屬于未來。
第一本 Python 書?
自然是這本了:The Python Tutorial?,中文翻譯。
Python 文檔的質量很高,更新也非常及時。看完上面這本(大約2天就夠了),你就已經了解了 Python 最主要的特性。注意中文翻譯版可能有些錯誤,應和原版一起閱讀。
離線文檔
在 Windows/Linux 上安裝?Zeal?,在 Mac OS X 上安裝?Dash,然后下載 Python 的離線文檔。
若是不愿意使用上面的軟件,可以直接下載?Python.org?提供的離線文檔,建議下載 HTML 版本,這樣搜索會比較快速。
我常用的方案是在本地架設 HTTP Server(使用Apache 或者 Nginx),使用本地站點定位(例如:http://localhost/docs),這樣可以整合許多可用的文檔,搜索起來比較方便,例如這個:http://doc.zengrong.net/python/?。
編輯器/IDE
如果沒有什么偏好的話,可以使用?Sublime?。若是喜歡 IDE 類型,可以使用?PyCharm?這個和 Intellij IDEA 同源的優秀 IDE。若已經加入 Vim 或 Emacs 黨,就什么都不用選。
Coding with Quick And Dirty
接著可以寫一些菜鳥級的程序了。把以前用 bash 寫的打包腳本神馬的拿來改一改,用 sed/awk 寫的文本分析器拿來重寫下,找點自信讓自己繼續下去。不要太關注是否采用了 Python 風格的用法,這個過程的重點在于建立自信和找到使用 Python 的快樂感覺。
在這個過程中,不可避免的會接觸到 Python 的標準庫,用 Quick and Dirty 的方法去學習它們,讓它們在你腦海中留下印象。
在這個不超過一周的過程中,可能會發出感嘆:Kao,真 TMD 的簡單。
Coding Reference
在 Coding 的過程當中,可能會碰到不少問題,畢竟一門流行的語言都有一個完善的社區和工作流程,要干活,就要了解他們。
我將這些信息集中在這里,方便查找:
- 你經常會碰到 PEP 類的東東,它們是什么?——?PEP Purpose and Guidelines
- Python 代碼規范 ——?Style Guide for Python Code
- 安裝第三方包,各種不同的方法令人很焦慮? ——?Python 包管理工具解惑
- 你需要一個虛擬環境。 ——?Python 虛擬環境
- 這是不可避免的 ——?Python2/3 在Windows 下的共存
- __init__.py 和 __main__.py
第二本 Python 書
第二本當然就是傳說中?The Fuck Reference?了。你不可能在第一時間全部讀完它,但你至少應該先讀完這個:Data model?。Data Model 本來就是一個面向對象語言的基礎,先讀完這個,才能夠更順暢地閱讀 Reference 的其他部分。
Reference 應該作為字典,在不懂的時候就來查一下,在沒事的時候就來翻一下。畢竟,這些是 Python 最基礎的東西。
Coding With a Project
現在的 Coding 不能局限于腳本級別了,你應該完成一個項目。這個項目可以是你以前項目的 Python 翻版,也可以從頭設計一個新的小型項目。
這個部分對你的幫助在于,通過完整項目的設計,你能將以前的工程化經驗應用到 Python 中來(或者反過來說也行),你會更了解 Python 在項目管理上的一些技能。
這方面值得單獨寫一篇文章來說明,不過我似乎不必寫了,因為已經有一篇了:?Open Sourcing a Python Project the Right Way?。
下面是我初學 Python 的時候建立的兩個項目,我一直在對它們維護到現在。他們的內容足夠簡單,可以拿來稍作參考。
- rookout?一些我自己常用的 python 功能封裝,Python 庫項目。已經發布到pipy?上。
- wpcmd?通過 WordPress XML-RPC 接口在本地創建、更新 WordPress 博客的命令行工具,Python 命令行工具項目。zengrong.net?就是使用該工具進行管理。
如果對 GUI 開發感興趣,我建議在這個階段直接開啟一個 GUI 項目,使用PyQt5,然后使用?cx_Freeze?打包。
在這個階段,必須要注重 code style,深入理解各種不同用法,了解API和標準庫(僅僅是了解,不必熟悉),并完全忘記前面施行的 Quick And Dirty 方法。
沒有終點
Python 可以做很多事情。科學家用它來做?科學計算,漫畫愛好者用它來爬站,程序員們用它來寫開源/商業軟件,我們也曾經用它做游戲服務器,還有游戲引擎?直接使用它做腳本語言。
寫 Python,需要注意的是它是 Python,不是 C++。對任何一個新的語言,都不要試圖完全用自己已有的語言經驗去理解和使用它。在程序中要體現出 Python 的特點:lambda、生成器、列表推導式,這些東西不可不用,也不應亂用。
入門到此為止,但學習沒有終點。我列出一些可能所有 Python 使用者都需要了解的東西(或需要的資源),而更多的內容,只能根據偏好和使用方向自己選擇了。
- Python 2/3 區別(What’s New In Python 3.0)
- 2to3 – Automated Python 2 to 3 code translation
- PyZh
- 全局解釋器鎖 GIL
- Python 測試框架的選擇
- 《深入Python3》
- 《Python Cookbook 3rd Edition》
- 《用Python做科學計算》
- 笨辦法學Python
- A Beginner’s Guide to Python
(全文完)
關聯文章
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀
總結
以上是生活随笔為你收集整理的Python 入门建议的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Caffe学习系列(14):初识数据可视
- 下一篇: Programming Computer