Python Programming Tips

  • 隨時關注Python最新版本的變動,新的功能與函數可能會大大提升你的開發效率
  • with.open() .close()配合使用,便於代碼debug。

由於文件讀寫時都有可能產生IOError,一旦出錯,後面的f.close()就不會調用。所以,為了保證無論是否出錯都能正確地關閉文件,我們可以使用try ... finally來實現:

try:n f = open(/path/to/file, r)n print(f.read())nfinally:n if f:n f.close()n

Python 對一些內建對象進行改進,加入了對上下文管理器的支持,可以用於 with 語句中,比如可以自動關閉文件、線程鎖的自動獲取和釋放等。這裡使用了 with 語句,不管在處理文件過程中是否發生異常,都能保證 with 語句執行完畢後已經關閉了打開的文件句柄。引入with,代碼更加簡潔:

with open(/path/to/file, r) as f:n print(f.read())n

  • 為每個項目加入virtualenv 虛擬環境,不要在原始系統安裝python庫,這將使你的每個項目高度獨立可重複,同時可以避免重複安裝各種庫之間的版本問題。

安裝

sudo pip install virtualenvn

創建ENV文件夾

virtualenv ENVn

激活環境,安裝庫

source bin/activatenpip install xxxn

脫離環境

deactivaten

  • 使用csv模塊來處理解析.csv文件

import csvnwith open(some.csv, newline=) as f:n reader = csv.reader(f)n for row in reader:n print(row)n

import csvnwith open(some.csv, w, newline=) as f:n writer = csv.writer(f)n writer.writerows(someiterable)n

  • 當你需要對循環的對象計數時,使用enumerate

count = 0nfor index, line in enumerate(open(filepath,r)) n count += 1n

  • 當你正在使用IDE編程(Pycharm)時請花點時間了解它的特性. 特別是如何使用debugger,如何設置斷點以及單步執行代碼

最全Pycharm教程(3)--代碼的調試、運行 - 陳俊嶺的程序員之路 - CSDN博客

  • 根據你的目標合理使用多進程multiprocessing多線程threading

multiprocessing 多進程教程系列

16.6. multiprocessing - Process-based 「threading」 interface - Python 2.7.14 documentation

  • ipython或者Jupyter等互動式解釋器配合IDE進行開發。 ipythonJupyter有像%time%prun這樣有用的魔法命令,使得編寫函數更加容易測試、修改。

27個Jupyter Notebook小提示與技巧

  • 儘可能避免使用*args**kwargs,除非你真的需要它們。不必要的參數引入會降低代碼的可讀性與完整性

歡迎補充,待續~

推薦閱讀:

初學 Python,有哪些 Pythonic 的源碼推薦閱讀?
如何在mac版本的python里安裝pip?
十分鐘快速入門 Pandas

TAG:Python | 机器学习 | 编程 |