0. Python安裝
官網提供多種方式,通常Windows下直接安裝exe便可;Linux下基本上自帶python;另外也提供源碼,也可自行編譯;
若安裝後沒法使用,則檢查一下環境變量是否設置正確。
額外:除了最主要的官網資料、文檔外,Python的wiki也提供了不少有用的信息
1. Python相關源碼
0) 標準庫
1) PyPi包索引(可經過pip工具安裝)
2) GitHub上的Python項目
3) Code activestate上面的Python代碼片斷
2. Python安裝包
0) msi或exe格式直接運行安裝
1) pip方式安裝,pip install 可安裝whl格式或新版本pip下可直接安裝包PyPi下指定的包
2) easy_install 安裝egg格式的包
3) 對於提供源碼的包,可經過python setup.py install 安裝,通常會提供setup.py文件
3. Python開發環境
0) vim /notepad++/Sublime Text等一系列編輯器
1) 自帶的基於Tk的IDLE/IPython
2) PyCharm/Eric或者Eclipse PyDev/VS等基於插件的IDEpython
4. 命名、代碼規範
0) Google Python Style Guide
1) PEP8 Python編碼規範
2) 使用pylint、pyflakes、PEP8代碼風格檢查工具、isort 對import語句分段排序工具、clonedigger代碼重複率查詢等工具檢查代碼
5. 註釋、文檔
0) 文檔包括註釋和文檔字符串,通常在變量名、函數名、模塊名和類名中
1) Python只有單行註釋,對於''''''的文檔字符串也可看成註釋;不過不太建議,代碼風格可能不太規範
6. 測試代碼
0) 對於簡單的單個模塊可用:if __name__ == '__main__'內容中添加測試內容也可
1) 標準庫中的doctest測試包,把測試寫到文檔字符串中也起到必定的文檔說明的做用,其中文檔字符串內容爲:
字符 >>> 後面是一個函數調用,下一行是指望的執行結果,此後調用doctest.testmod()並在執行時增長-v選項便可
2) 標準庫中的unittest模塊進行單元測試,其須要實現該包含測試方法的繼承類,此後調用unittest.main()執行全部的測試用例
3) 第三方的測試包nose,其只須要使得以test開頭的函數做爲測試用例;測試文件xxx.py不須要寫if __name__ == '__main__',
此後執行nosetests xxx.py便可
4) 集成測試Test Discovery,可測試項目中多個測試用例文件;使用方式:python -m unittest discover
5) 各個Python測試框架,如pytest、tox框架git
7. 持續集成(自動化構建、測試系統)
0) buildbot
1) jenkins
2) travis-ci
3) coverage代碼覆蓋率測試工具
4) toxgithub
8. 調試代碼
0) 最通常的就是在須要的地方調用print打印信息
1) vars()函數調用可打印參數列表內容,結合裝飾器便可方便在調用實際函數先後打印、獲取某些信息或是執行調用其餘函數
2) 使用pdb調試器,使用方法:python -m pdb xxx.py
9. 日誌記錄
0) 簡單的用print打印信息至控制檯或者文件
1) 使用標準庫中的logging模塊,提供打印級別、格式、目標、過濾器等算法
10. 優化代碼
0) 通常狀況下是先優化算法、數據結構;
1) 使用標準庫time模塊的time函數測量執行時間,計算時間差可粗略計算執行時間
2) 使用標準庫timeit模塊的timeit函數可簡單測試代碼片斷的執行時間
3) 使用標準庫timeit模塊的repeat函數可屢次測試代碼片斷
4) 優化小tips:
0. 優化數據結構,好比:列表解析一般比for循環本身添加元素更快
1. 優化算法
2. Cython用來生成C擴展,Python中使用C寫成的庫(與CPython不同,後者爲Python默認實現的解釋器)
3. 另外某些計算的數學庫,還可使用NumPy(C語言實現)
4. 對於某些經過分析器分析獲得的確須要提升性能的部分可使用C擴展來實現,以提升性能
5. 使用標準庫ctypes模塊整合C語言庫的實現
6. 使用PyPy解析器(由Python實現的解析器,內部可能用到JIT即時解析器、沙盒等),其比CPython解釋器更快
11. 源碼控制
0) Git
1) SVN
2) CVS
3) Mercurial(Hg)
4) 其餘
12. 程序打包
0) Distutils打包程序
1) 結合0)使用sdist命令打包
2) 結合0)使用bdist命令打包並建立安裝程序
3) 結合0)使用擴展python,須要提供setup.py,build_ext命令打包
4) 使用py2exe等第三方工具建立可執行程序,一樣也須要提供setup.py
5) 其餘第三方打包工具vim
13. 一些不錯的Python學習資源或者其餘相關資料
0) https://github.com/jobbole/awesome-python-books
1) http://docs.python-guide.org/en/latest/#
2) https://zhuanlan.zhihu.com/p/22275595
3) https://www.zhihu.com/question/29138020
4) https://github.com/Yixiaohan/show-me-the-code
5) https://readthedocs.org/
6) https://github.com/vinta/awesome-python數據結構