18式優雅你的Python

文章授權轉載自 Python與算法之美,粗體文字爲生信寶典的修改和補充。文後有生信寶典原創的系列Python學習教程(Python2和Python3)。

一 優雅你的Jupyter

1,更改Jupyter Notebook初始工作路徑

平凡方法:在cmd中輸入jupyter notebook --generate-config,然後找到生成的配置文件jupyter_notebook_config.py,在其中加入一條語句:

c.NotebookApp.notebook_dir = 'F:\我的堅果雲\PythonFiles'

優雅方法:新建文本文件,在其中輸入以下內容:

F: cd F:\我的堅果雲\PythonFiles jupyter notebook pause

保存後將文件重命名爲jupyter.cmd (jupyter.bat也可以),雙擊該文件即可。

2,獲取函數幫助

平凡方法:help()。

優雅方法:光標移動至函數名右側 (或選中函數名),按住Shift + Tab鍵彈出幫助文本框。

3,修改多處的同一標識符名字

平凡方法:逐個修改。

優雅方法:按住Ctrl鼠標移動光標同時選中多處編輯位置,啓動多行編輯。(Jupyter也可以加一個插件,開啓vim模式,自由替換,見Python文學化編程 - Jupyter notebook使用和插件拓展)。

二,優雅你的賦值語句

4,爲多個變量賦值

平凡方法:逐一賦值。

優雅方法:使用元組語法同時賦值。

5,序列解包

平凡方法:使用下標訪問逐一賦值。

優雅方法:序列自動解包。

6,對象方法的嵌套

平凡方法:定義中間變量,不嵌套。

優雅方法:使用對象方法嵌套,減少中間變量。

三,優雅你的判斷語句

7,單行if語句:if...else...三目運算符

平凡方法:使用普通需要換行的if...else...語句。

優雅方法:使用單行if語句:if...else...三目運算符。(三目運算符不太推薦

8,區間判斷

平凡方法:使用and連接兩次判斷。

優雅方法:使用鏈式判斷。

9,判斷是否爲多個取值之一

平凡方法:使用or連接多次相等判斷。

優雅方法:使用關鍵字in。(set和dict的查詢速度是O(1),很快的,具體見爲啥我的Python這麼慢 - 項查找 (二)

10,判斷是否爲空列表,空字典,空字符串

平凡方法:使用len函數判斷長度是否大於0。

優雅方法:利用隱含類型轉換直接判斷

11,判斷諸多條件是否至少有一個成立

平凡方法:使用or連接多次判斷。

優雅方法:使用any函數。(R也有類似用法,R學習見ggplot2高效實用指南 (可視化腳本、工具、套路、配色))

12,判斷諸多條件是否全部成立

平凡方法:使用and連接多次判斷。

優雅方法:使用all函數。

四,優雅你的循環語句

13,單行循環語句:推導式

平凡方法:使用普通for循環。

優雅方法:使用推導式:[... for .... in ... if ... ]。(列表解析和字典解析很常用

14,同時遍歷序列的元素和元素下標

平凡方法:遍歷下標,並用下標訪問元素。

優雅方法:使用enumerate函數生成下標和元素對。

15,顯示循環進度

平凡方法:直接不斷print下標。該方法容易導致輸出刷屏。

優雅方法:print下標後設置不換行並使用‘\r’回車到行首以避免輸出刷屏。(\r的妙用,回車不換行)

優雅方法加強版:定義progress_bar函數,直觀顯示進度條。

五,優雅你的函數

16,使用lambda匿名函數實現簡單的函數

平凡方法:使用def關鍵字定義函數。

優雅方法:使用lambda匿名函數。

17,使用yield生成器收集系列值

平凡方法:在函數中直接用列表收集系列值。

優雅方法:使用yield生成器收集系列值。生成器具有惰性計算特點,被迭代才逐個計算輸出值。

18,使用裝飾器給函數添加插入日誌,性能測試等非核心功能

平凡方法:將插入日誌,性能測試等非核心功能直接內嵌到函數定義中。

優雅方法:使用裝飾器擴展函數的非核心功能。裝飾器函數可以一次定義,到處裝飾。(裝飾器值得好好學習)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章