原來月薪50K的Python開發都是運用這些技巧高效編程

原來月薪50K的Python開發都是運用這些技巧高效編程

Python是一門足夠簡單但又非常強大的程序語言,應用領域甲冠天下,在WEB開發、WEB爬蟲、科學計算、人工智能、雲計算、數據分析、數據挖掘、系統運維、金融、遊戲等領域都有完備且成熟的開源方案。一個有編程經驗的程序員,從0寫一個爬蟲系統,通常就是一個下午的時間。恰逢人工智能元年,Python無可爭議地成為當下最熱門的語言之一,越來越多的人湧入到Python學習熱潮中來。

然而,基礎語法都知道,代碼也基本能讀懂,但是動手能力差,寫代碼沒有任何頭緒,開源項目中的代碼稍微複雜就難以理解,這是很多初學者面臨的困惑。國內 Python 教程良莠不齊,大多數僅停留在基礎語法層面,這導致很多初學者甚至一些富有經驗的開發者寫出來的代碼帶有濃重的“口音”(從其它語言轉移過來的編程思維),下面分享一下Python編程中的那些技巧,希望可以有幫助

原地交換兩個數字

Python 提供了一個直觀的在一行代碼中賦值與交換(變量值)的方法,請參見下面的示例:

原來月薪50K的Python開發都是運用這些技巧高效編程

3. 使用三元操作符來進行條件賦值

三元操作符是 if-else 語句也就是條件操作符的一個快捷方式:

[表達式為真的返回值] if [表達式] else [表達式為假的返回值]

這裡給出幾個你可以用來使代碼緊湊簡潔的例子。下面的語句是說“如果 y 是 9,給 x 賦值 10,不然賦值為 20”。

x = 10 if (y == 9) else 20

同樣地,我們可以對類做這種操作:

x = (classA if y == 1 else classB)(param1, param2)

在上面的例子裡 classA 與 classB 是兩個類,其中一個類的構造函數會被調用。

下面是另一個多個條件表達式鏈接起來用以計算最小值的例子:

原來月薪50K的Python開發都是運用這些技巧高效編程

原來月薪50K的Python開發都是運用這些技巧高效編程

原來月薪50K的Python開發都是運用這些技巧高效編程

原來月薪50K的Python開發都是運用這些技巧高效編程

原來月薪50K的Python開發都是運用這些技巧高效編程

或者,對於 in 操作符我們也可以使用 ‘{1,3,5,7}’ 而不是 ‘[1,3,5,7]’,因為 set 中取元素是 O(1) 操作。

13. 運行時檢測 Python 版本

原來月薪50K的Python開發都是運用這些技巧高效編程

原來月薪50K的Python開發都是運用這些技巧高效編程

請只在必要的時候採用上面的技巧。

24. 檢查一個對象的內存使用

在 Python 2.7 中,一個 32 比特的整數佔用 24 字節,在 Python 3.5 中利用 28 字節。為確定內存使用,我們可以調用 getsizeof 方法:

在 Python 2.7 中

原來月薪50K的Python開發都是運用這些技巧高效編程

很明顯,你可以從結果中看到確實有內存使用上的節省,但是你只應該在一個類的內存開銷不必要得大時才使用 __slots__。只在對應用進行性能分析後才使用它,不然地話,你只是使得代碼難以改變而沒有真正的益處。

【譯者注:在我的 win10 python2.7 中上面的結果是:

原來月薪50K的Python開發都是運用這些技巧高效編程

原來月薪50K的Python開發都是運用這些技巧高效編程


分享到:


相關文章: