30個Python程式設計師需要知道的程式設計技巧,可以讓你的工作事半功倍!

weixin_33766168發表於2018-10-01

1.直接交換2個數字的位置

Python 提供了一種直觀的方式在一行程式碼中賦值和交換(變數值)。如下所示:

30個Python程式設計師需要知道的程式設計技巧,可以讓你的工作事半功倍!

在上面程式碼中,賦值的右側形成了一個新元組,而左側則立刻將該(未被引用的)元組解包到名稱<a>和<b>。

待賦值完成後,新元組就變成了未被引用狀態,並且被標為可被垃圾回收,最終也就發生了數字交換。

2.連結比較操作符

比較運算子的聚合是另一種有時用起來很順手的技巧。

30個Python程式設計師需要知道的程式設計技巧,可以讓你的工作事半功倍!

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

三元操作符是 if-else 語句(也就是條件操作符)的快捷操作

30個Python程式設計師需要知道的程式設計技巧,可以讓你的工作事半功倍!

下面舉兩個例子例子,展示一下可以用這種技巧讓你的程式碼更緊湊更簡潔。

下面的語句意思是“如果 y 為 9,就向 x 賦值 10,否則向 x 賦值 20”。如果需要,我們可以擴充套件這個操作符連結:

30個Python程式設計師需要知道的程式設計技巧,可以讓你的工作事半功倍!

同樣,我們對類物件也可以這樣操作:

30個Python程式設計師需要知道的程式設計技巧,可以讓你的工作事半功倍!

在上面這個例子中,classA 與 classB 是兩個類,其中一個類建構函式會被呼叫。

4.使用多行字串

這個方法就是使用源自 C 語言的反斜槓:

30個Python程式設計師需要知道的程式設計技巧,可以讓你的工作事半功倍!

另一個技巧就是用三引號:

30個Python程式設計師需要知道的程式設計技巧,可以讓你的工作事半功倍!

上述方法的一個常見問題就是缺少合適的縮排,如果我們想縮排,就會在字串中插入空格。

所以最終的解決方案就是將字串分成多行,並將整個字串包含在括號中:

30個Python程式設計師需要知道的程式設計技巧,可以讓你的工作事半功倍!

5.將一個列表的元素儲存到新變數中

我們可以用一個列表來初始化多個變數,在解析列表時,變數的數量不應超過列表中的元素數量,否則會報錯。

30個Python程式設計師需要知道的程式設計技巧,可以讓你的工作事半功倍!

6.列印出匯入的模組的檔案路徑

如果你想知道程式碼中匯入的模組的絕對路徑,用下面這條技巧就行了:

30個Python程式設計師需要知道的程式設計技巧,可以讓你的工作事半功倍!

7.使用互動式“_”操作符

其實這是個相當有用的功能,只是我們很多人並沒有注意到。

在 Python 控制檯中,每當我們測試一個表示式或呼叫一個函式時,結果都會分配一個臨時名稱,_(一條下劃線)。

30個Python程式設計師需要知道的程式設計技巧,可以讓你的工作事半功倍!

這裡的“_”是上一個執行的表示式的結果。推薦下小編的Python學習q u n 227-435-450,不管你是小白還是大牛,小編我都歡迎,不定期分享乾貨,包括小編自己整理的一份2018最新的Python資料和0基礎入門教程,歡迎初學和進階中的小夥伴。在不忙的時間我會給大家解惑。

8.字典/集合推導

就像我們使用列表表示式一樣,我們也可以使用字典/集合推導。非常簡單易用,也很有效,示例如下:

30個Python程式設計師需要知道的程式設計技巧,可以讓你的工作事半功倍!

注意:在這兩個語句中,<:>只有一處差異。另外,如果想用 Python3 執行以上程式碼,要把 <xrange> 替換為 <range>。

9.除錯指令碼

我們可以藉助 <pdb> 模組在 Python 指令碼中設定斷點,如下所示:

30個Python程式設計師需要知道的程式設計技巧,可以讓你的工作事半功倍!

我們可以在指令碼的任意位置指定<pdb.set_trace()> ,然後在那裡設定一個斷點,非常方便。

10.設定檔案分享

Python 能讓我們執行 HTTP 伺服器,可以用於分享伺服器根目錄中的檔案。啟動伺服器的命令如下:

30個Python程式設計師需要知道的程式設計技巧,可以讓你的工作事半功倍!

上述命令會在預設埠 8000 啟動一個伺服器,你也可以使用自定義埠,將埠作為最後元素傳入上述命令中即可。

11.在Python中檢查物件

我們可以通過呼叫 dir() 方法在 Python 中檢查物件,下面是一個簡單的例子:

30個Python程式設計師需要知道的程式設計技巧,可以讓你的工作事半功倍!

12.簡化if語句

我們可以通過如下方式來驗證多個值:

if m in [1,3,5,7]:

而不用這樣:

if m==1 or m==3 or m==5 or m==7:

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

13.在執行時檢測Python的版本

有時如果當前執行的 Python 低於支援版本時,我們可能不想執行程式。那麼就可以用下面的程式碼指令碼檢測 Python 的版本。還能以可讀格式列印出當前所用的 Python 版本。

30個Python程式設計師需要知道的程式設計技巧,可以讓你的工作事半功倍!

另外,你可以將上面程式碼中的 sys.hexversion!= 50660080 替換為 sys.version_info >= (3, 5)。

在 Python 2.7 中執行輸出為:

30個Python程式設計師需要知道的程式設計技巧,可以讓你的工作事半功倍!

在Python 3.5中執行輸出為:

30個Python程式設計師需要知道的程式設計技巧,可以讓你的工作事半功倍!

14.組合多個字串

如果你想拼接列表中的所有 token,那麼看看下面的例子就明白了:

>>> test = [`I`, `Like`, `Python`, `automation`]

現在我們從上面列表的元素中建立一個字串:

>>> print ``.join(test)

15.翻轉字串/列表的4種方式

30個Python程式設計師需要知道的程式設計技巧,可以讓你的工作事半功倍!

我們會得到結果“nohtyP tseT”。

30個Python程式設計師需要知道的程式設計技巧,可以讓你的工作事半功倍!

上面的命令會得到輸出結果 [5, 3, 1]。

16.使用列舉

使用列舉可以很容易地在迴圈中找到索引:

30個Python程式設計師需要知道的程式設計技巧,可以讓你的工作事半功倍!

17.在 Python 中使用列舉量

我們可以用如下方法來建立列舉定義:

30個Python程式設計師需要知道的程式設計技巧,可以讓你的工作事半功倍!

18.從函式中返回多個值

支援這種功能的程式語言並不多,然而,Python 中的函式可以返回多個值。

可以參考下面的例子看看是怎麼做到的:

30個Python程式設計師需要知道的程式設計技巧,可以讓你的工作事半功倍!

19.使用*運算子解壓縮函式引數

*運算子提供了一種很藝術的方式來解壓縮引數列表,參看如下示例:

30個Python程式設計師需要知道的程式設計技巧,可以讓你的工作事半功倍!

20.使用字典來儲存表示式

30個Python程式設計師需要知道的程式設計技巧,可以讓你的工作事半功倍!

21.一行程式碼計算任何數字的階乘

30個Python程式設計師需要知道的程式設計技巧,可以讓你的工作事半功倍!

22.找到一個列表中的出現最頻繁的值

30個Python程式設計師需要知道的程式設計技巧,可以讓你的工作事半功倍!

23.重置遞迴限制

Python 將遞迴限制到 1000,我們可以重置這個值:

30個Python程式設計師需要知道的程式設計技巧,可以讓你的工作事半功倍!

提示:在有必要時才使用該技巧。

24.檢查一個物件的記憶體使用

在 Python 2.7 中,一個 32-bit 的整數值會佔用 24 位元組,而在 Python 3.5 中會佔用 28 位元組。我們可以呼叫<getsizeof> 方法來驗證記憶體使用。

在 Python 2.7 中:

30個Python程式設計師需要知道的程式設計技巧,可以讓你的工作事半功倍!

在 Python 3.5 中:

30個Python程式設計師需要知道的程式設計技巧,可以讓你的工作事半功倍!

25.使用_slots_減少記憶體消耗

不知道你是否注意過你的 Python 程式會佔用很多資源,特別是記憶體?這裡分享給你一個技巧,使用 <__slots__> 類變數來減少程式的記憶體消耗。

30個Python程式設計師需要知道的程式設計技巧,可以讓你的工作事半功倍!

很明顯,從解僱中可以看到節省了一些記憶體。但是應當在一個類的記憶體佔用大得沒有必要時再使用這種方法。對應用進行效能分析後再使用它,不然除了會讓程式碼難以改動外沒有什麼好處。

26.使用拉姆達來模仿輸出方法

30個Python程式設計師需要知道的程式設計技巧,可以讓你的工作事半功倍!

27.從兩個相關序列中建立一個字典

30個Python程式設計師需要知道的程式設計技巧,可以讓你的工作事半功倍!

28.用一行程式碼搜尋字串的前字尾

30個Python程式設計師需要知道的程式設計技巧,可以讓你的工作事半功倍!

29.不使用任何迴圈,構造一個列表

30個Python程式設計師需要知道的程式設計技巧,可以讓你的工作事半功倍!

如果輸入列表中有嵌入的列表或元組作為元素,那麼就使用下面這種方法,不過也有個侷限,它使用了 for 迴圈:

30個Python程式設計師需要知道的程式設計技巧,可以讓你的工作事半功倍!

30.在Python中實現一個真正的switch-case語句

下面是使用字典模仿一個 switch-case 構造的程式碼示例:

30個Python程式設計師需要知道的程式設計技巧,可以讓你的工作事半功倍!

結語

希望上面列出的這些 Python 技巧和建議能幫你快速和高效地完成 Python 開發,可以在專案中應用它們。歡迎留言評論!


相關文章