30個Python程式設計師需要知道的程式設計技巧,可以讓你的工作事半功倍!
1.直接交換2個數字的位置
Python 提供了一種直觀的方式在一行程式碼中賦值和交換(變數值)。如下所示:
在上面程式碼中,賦值的右側形成了一個新元組,而左側則立刻將該(未被引用的)元組解包到名稱<a>和<b>。
待賦值完成後,新元組就變成了未被引用狀態,並且被標為可被垃圾回收,最終也就發生了數字交換。
2.連結比較操作符
比較運算子的聚合是另一種有時用起來很順手的技巧。
3.使用三元操作符進行條件賦值
三元操作符是 if-else 語句(也就是條件操作符)的快捷操作
下面舉兩個例子例子,展示一下可以用這種技巧讓你的程式碼更緊湊更簡潔。
下面的語句意思是“如果 y 為 9,就向 x 賦值 10,否則向 x 賦值 20”。如果需要,我們可以擴充套件這個操作符連結:
同樣,我們對類物件也可以這樣操作:
在上面這個例子中,classA 與 classB 是兩個類,其中一個類建構函式會被呼叫。
4.使用多行字串
這個方法就是使用源自 C 語言的反斜槓:
另一個技巧就是用三引號:
上述方法的一個常見問題就是缺少合適的縮排,如果我們想縮排,就會在字串中插入空格。
所以最終的解決方案就是將字串分成多行,並將整個字串包含在括號中:
5.將一個列表的元素儲存到新變數中
我們可以用一個列表來初始化多個變數,在解析列表時,變數的數量不應超過列表中的元素數量,否則會報錯。
6.列印出匯入的模組的檔案路徑
如果你想知道程式碼中匯入的模組的絕對路徑,用下面這條技巧就行了:
7.使用互動式“_”操作符
其實這是個相當有用的功能,只是我們很多人並沒有注意到。
在 Python 控制檯中,每當我們測試一個表示式或呼叫一個函式時,結果都會分配一個臨時名稱,_(一條下劃線)。
這裡的“_”是上一個執行的表示式的結果。推薦下小編的Python學習q u n 227-435-450,不管你是小白還是大牛,小編我都歡迎,不定期分享乾貨,包括小編自己整理的一份2018最新的Python資料和0基礎入門教程,歡迎初學和進階中的小夥伴。在不忙的時間我會給大家解惑。
8.字典/集合推導
就像我們使用列表表示式一樣,我們也可以使用字典/集合推導。非常簡單易用,也很有效,示例如下:
注意:在這兩個語句中,<:>只有一處差異。另外,如果想用 Python3 執行以上程式碼,要把 <xrange> 替換為 <range>。
9.除錯指令碼
我們可以藉助 <pdb> 模組在 Python 指令碼中設定斷點,如下所示:
我們可以在指令碼的任意位置指定<pdb.set_trace()> ,然後在那裡設定一個斷點,非常方便。
10.設定檔案分享
Python 能讓我們執行 HTTP 伺服器,可以用於分享伺服器根目錄中的檔案。啟動伺服器的命令如下:
上述命令會在預設埠 8000 啟動一個伺服器,你也可以使用自定義埠,將埠作為最後元素傳入上述命令中即可。
11.在Python中檢查物件
我們可以通過呼叫 dir() 方法在 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 版本。
另外,你可以將上面程式碼中的 sys.hexversion!= 50660080 替換為 sys.version_info >= (3, 5)。
在 Python 2.7 中執行輸出為:
在Python 3.5中執行輸出為:
14.組合多個字串
如果你想拼接列表中的所有 token,那麼看看下面的例子就明白了:
>>> test = [`I`, `Like`, `Python`, `automation`]
現在我們從上面列表的元素中建立一個字串:
>>> print ``.join(test)
15.翻轉字串/列表的4種方式
我們會得到結果“nohtyP tseT”。
上面的命令會得到輸出結果 [5, 3, 1]。
16.使用列舉
使用列舉可以很容易地在迴圈中找到索引:
17.在 Python 中使用列舉量
我們可以用如下方法來建立列舉定義:
18.從函式中返回多個值
支援這種功能的程式語言並不多,然而,Python 中的函式可以返回多個值。
可以參考下面的例子看看是怎麼做到的:
19.使用*運算子解壓縮函式引數
*運算子提供了一種很藝術的方式來解壓縮引數列表,參看如下示例:
20.使用字典來儲存表示式
21.一行程式碼計算任何數字的階乘
22.找到一個列表中的出現最頻繁的值
23.重置遞迴限制
Python 將遞迴限制到 1000,我們可以重置這個值:
提示:在有必要時才使用該技巧。
24.檢查一個物件的記憶體使用
在 Python 2.7 中,一個 32-bit 的整數值會佔用 24 位元組,而在 Python 3.5 中會佔用 28 位元組。我們可以呼叫<getsizeof> 方法來驗證記憶體使用。
在 Python 2.7 中:
在 Python 3.5 中:
25.使用_slots_減少記憶體消耗
不知道你是否注意過你的 Python 程式會佔用很多資源,特別是記憶體?這裡分享給你一個技巧,使用 <__slots__> 類變數來減少程式的記憶體消耗。
很明顯,從解僱中可以看到節省了一些記憶體。但是應當在一個類的記憶體佔用大得沒有必要時再使用這種方法。對應用進行效能分析後再使用它,不然除了會讓程式碼難以改動外沒有什麼好處。
26.使用拉姆達來模仿輸出方法
27.從兩個相關序列中建立一個字典
28.用一行程式碼搜尋字串的前字尾
29.不使用任何迴圈,構造一個列表
如果輸入列表中有嵌入的列表或元組作為元素,那麼就使用下面這種方法,不過也有個侷限,它使用了 for 迴圈:
30.在Python中實現一個真正的switch-case語句
下面是使用字典模仿一個 switch-case 構造的程式碼示例:
結語
希望上面列出的這些 Python 技巧和建議能幫你快速和高效地完成 Python 開發,可以在專案中應用它們。歡迎留言評論!
相關文章
- Python魔法:20個讓你程式設計事半功倍的奇淫技巧(建議收藏)Python程式設計
- 程式設計師程式設計入門一定知道!程式設計師需要學什麼?程式設計師
- 羨慕程式設計師的高薪?你會讓你的孩子當程式設計師嗎?程式設計師高薪
- 30歲的程式設計師,你慌了嗎?程式設計師
- 程式設計師,30歲+,看完讓你不再焦慮程式設計師
- 每個Python新手都應該知道的程式設計技巧Python程式設計
- 美女程式設計師觀點:程式設計師最重要的非程式設計技巧程式設計師
- Python程式設計師常用的五大工具,你知道幾個?Python程式設計師
- 好程式設計師Python培訓分享Python程式設計師面試技巧程式設計師Python面試
- 增加你找到程式設計師工作機會的 5 個技巧程式設計師
- 程式設計師做產品需要知道程式設計師
- 你需要程式設計師鼓勵師嗎?程式設計師
- 程式設計師程式設計時的簡單方法與技巧程式設計師
- 論跟程式設計師談話的技巧:千萬不要跟程式設計師說,你的程式碼有bug程式設計師
- Python的22個程式設計技巧,請收下!Python程式設計
- 初級程式設計師需要知道的基本程式碼規範程式設計師
- 【1024程式設計師節】程式設計師,你學程式設計的初衷是什麼?程式設計師
- @程式設計師,你需要點財商程式設計師
- Python常用的圖形介面程式設計框架,你知道幾個?Python程式設計框架
- 新手程式設計師須知30個技巧!少走彎路程式設計師
- 程式設計師的差距在哪裡?程式設計師的三個級別,你在哪裡?程式設計師
- 每個程式設計師都需要知道的概念和術語 - codeburst程式設計師
- 程式設計師:全棧的痛你不知道程式設計師全棧
- 18個Python高效程式設計技巧!Python程式設計
- 程式設計師程式設計入門,物件導向需要知道這6點!程式設計師物件
- Java程式設計師學習的6個技巧, 你get到了嗎?Java程式設計師
- 一個老程式設計師的程式設計之路,寫給年輕的程式設計師們程式設計師
- 讓程式設計師崩潰的瞬間(非程式設計師勿入)程式設計師
- 程式設計師程式設計,你的練習是不是有效的?程式設計師
- 老程式設計師的10個程式設計小技巧,教你寫出高質量程式碼!程式設計師
- 你可以 CRUD,但你不是 CRUD 程式設計師!程式設計師
- @程式設計師,一文讓你掌握Python爬蟲!程式設計師Python爬蟲
- 你知道python程式設計環境需要具備,哪些優秀的功能嗎?Python程式設計
- @程式設計師,你需要點金融常識程式設計師
- 程式設計師需要了解的10個Linux命令程式設計師Linux
- 以前的程式設計師,現在的程式設計師程式設計師
- 6個新手程式設計師程式設計必不可少的工具,你用過幾個?程式設計師
- 程式設計師工作中的三個錦囊程式設計師