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