Python 提供了一種直觀的方式在一行代碼中賦值和交換(變量值)。以下所示:程序員
在上面代碼中,賦值的右側造成了一個新元組,而左側則馬上將該(未被引用的)元組解包到名稱<a>和<b>。編程
待賦值完成後,新元組就變成了未被引用狀態,而且被標爲可被垃圾回收,最終也就發生了數字交換。服務器
比較運算符的聚合是另外一種有時用起來很順手的技巧。編程語言
三元操做符是 if-else 語句(也就是條件操做符)的快捷操做函數
下面舉兩個例子例子,展現一下能夠用這種技巧讓你的代碼更緊湊更簡潔。性能
下面的語句意思是「若是 y 爲 9,就向 x 賦值 10,不然向 x 賦值 20」。若是須要,咱們能夠擴展這個操做符連接:學習
一樣,咱們對類對象也能夠這樣操做:測試
在上面這個例子中,classA 與 classB 是兩個類,其中一個類構造函數會被調用。spa
這個方法就是使用源自 C 語言的反斜槓:3d
另外一個技巧就是用三引號:
上述方法的一個常見問題就是缺乏合適的縮進,若是咱們想縮進,就會在字符串中插入空格。
因此最終的解決方案就是將字符串分紅多行,並將整個字符串包含在括號中:
咱們能夠用一個列表來初始化多個變量,在解析列表時,變量的數量不該超過列表中的元素數量,不然會報錯。
若是你想知道代碼中導入的模塊的絕對路徑,用下面這條技巧就好了:
其實這是個至關有用的功能,只是咱們不少人並無注意到。
在 Python 控制檯中,每當咱們測試一個表達式或調用一個函數時,結果都會分配一個臨時名稱,_(一條下劃線)。
這裏的「_」是上一個執行的表達式的結果。
推薦下小編的Python學習q u n 227-435-450,無論你是小白仍是大牛,小編我都歡迎,不按期分享乾貨,包括小編本身整理的一份2018最新的Python資料和0基礎入門教程,歡迎初學和進階中的小夥伴。在不忙的時間我會給你們解惑。
就像咱們使用列表表達式同樣,咱們也可使用字典/集合推導。很是簡單易用,也頗有效,示例以下:
注意:在這兩個語句中,<:>只有一處差別。另外,若是想用 Python3 運行以上代碼,要把 <xrange> 替換爲 <range>。
咱們能夠藉助 <pdb> 模塊在 Python 腳本中設置斷點,以下所示:
咱們能夠在腳本的任意位置指定<pdb.set_trace()> ,而後在那裏設置一個斷點,很是方便。
Python 能讓咱們運行 HTTP 服務器,能夠用於分享服務器根目錄中的文件。啓動服務器的命令以下:
上述命令會在默認端口 8000 啓動一個服務器,你也可使用自定義端口,將端口做爲最後元素傳入上述命令中便可。
咱們能夠經過調用 dir() 方法在 Python 中檢查對象,下面是一個簡單的例子:
咱們能夠經過以下方式來驗證多個值:
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)獲取每一個元素。
有時若是當前運行的 Python 低於支持版本時,咱們可能不想執行程序。那麼就能夠用下面的代碼腳本檢測 Python 的版本。還能以可讀格式打印出當前所用的 Python 版本。
另外,你能夠將上面代碼中的 sys.hexversion!= 50660080 替換爲 sys.version_info >= (3, 5)。
在 Python 2.7 中運行輸出爲:
在Python 3.5中運行輸出爲:
若是你想拼接列表中的全部 token,那麼看看下面的例子就明白了:
>>> test = ['I', 'Like', 'Python', 'automation']
如今咱們從上面列表的元素中建立一個字符串:
>>> print ''.join(test)
咱們會獲得結果「nohtyP tseT」。
上面的命令會獲得輸出結果 [5, 3, 1]。
使用枚舉能夠很容易地在循環中找到索引:
咱們能夠用以下方法來建立枚舉定義:
支持這種功能的編程語言並很少,然而,Python 中的函數能夠返回多個值。
能夠參考下面的例子看看是怎麼作到的:
*運算符提供了一種很藝術的方式來解壓縮參數列表,參看以下示例:
Python 將遞歸限制到 1000,咱們能夠重置這個值:
提示:在有必要時才使用該技巧。
在 Python 2.7 中,一個 32-bit 的整數值會佔用 24 字節,而在 Python 3.5 中會佔用 28 字節。咱們能夠調用<getsizeof> 方法來驗證內存使用。
在 Python 2.7 中:
在 Python 3.5 中:
不知道你是否注意過你的 Python 程序會佔用不少資源,特別是內存?這裏分享給你一個技巧,使用 <__slots__> 類變量來減小程序的內存消耗。
很明顯,從解僱中能夠看到節省了一些內存。可是應當在一個類的內存佔用大得沒有必要時再使用這種方法。對應用進行性能分析後再使用它,否則除了會讓代碼難以改動外沒有什麼好處。
若是輸入列表中有嵌入的列表或元組做爲元素,那麼就使用下面這種方法,不過也有個侷限,它使用了 for 循環:
下面是使用字典模仿一個 switch-case 構造的代碼示例:
但願上面列出的這些 Python 技巧和建議能幫你快速和高效地完成 Python 開發,能夠在項目中應用它們。歡迎留言評論!