歡迎光臨
每天分享高質量文章

Python程式碼技巧,你值得擁有!

如何去掉list中重覆元素

  • 推薦方式

或者

前一種方式不會保留list的元素順序,後一種方式會保留list的元素順序。

如何讀取dict中的值

  • 不推薦方式

  • 推薦方式

前一種方式讀取一個不存在的key時,會導致KeyError,例如print url_dict[‘baidu’],因為字典中不存在baidu,所以會導致KeyError。後一種方式使用字典的get方法,如果key不存在,不會產生KeyError,如果給了預設值,會傳回預設值,否則傳回None。

如何排序字典

  • 推薦方式

第一種方式是按字典的value升序排序,第二種方式是按字典的key升序排序,第三種方式是按字典的value降序排序,和第一種方式相反,因為指定了引數reverse為True。sorted函式功能挺強大,不止可以排序字典,任何iterable物件都可以排序。

如何列印更易讀的類

  • 不推薦方式

  • 推薦方式

前一種方式列印的類不易讀,不能獲取更多的資訊。透過類的repr方法可以將類列印得更易讀。或者不定義repr方法,直接使用下麵方式列印:

print p.__dict__# {'y': 4, 'x': 3}

使用dict方法,將類以字典形式打印出來,也比較易讀。

如何將類列印成json字串

  • 推薦方式

透過json模組的dumps方法,可以輕易將類列印成json字串。

如何排序類串列

  • 推薦方式

這裡排序的方法和字典排序類似,第一種是按user的key升序排序,第二種是按user的name升序排序。其實還支援名字相同,再按key進行排序,如下:

如何在命令列檢視python檔案

  • 推薦方式

第一個命令pydoc sys.exit檢視sys模組的exit函式檔案資訊,第二個命令pydoc sorted查看了內建函式sorted的檔案資訊。

如何將python程式碼打包成獨立的二進位制檔案

  • 推薦方式

需要編譯的python程式碼如下:

#!/usr/bin/env python# -*- coding: utf-8 -*-print 'hello, world!'

將python程式碼打包成獨立的二進位制檔案步驟:

我解釋下上面命令列,首先使用python直接執行需要編譯成獨立二進位制檔案的hello_world.py,程式正常列印hello, world!,然後使用pip安裝pyinstaller,透過pyinstaller將hello_world.py打包成獨立的二進位制檔案,然後進入當前目錄下的dist目錄,執行打包成功的二進位制檔案hello_world,程式正常列印hello, world!。除了pyinstaller,還有其他工具可以實現類似功能

如何自動格式化python程式碼

  • 推薦方式

格式化前的demo.py程式碼:

安裝autopep8,並使用autopep8格式化demo.py程式碼:

root@master:demo$ pip install autopep8root@master:demo$ autopep8 --in-place --aggressive --aggressive demo.py

格式化後的demo.py程式碼:

可以看到,經過autopep8格式化後的python程式碼更易讀,也符合python的程式碼風格,這裡的示例程式碼使用autopep8官方例子。

正確的函式傳回

  • 不推薦方式

  • 推薦方式

前一種方式中,如果輸入的引數b為0,函式會預設傳回None,這是一個不太好的程式設計習慣。例如,當把函式的傳回值作為if條件判斷時,0.0和None都是False,這樣容易導致bug。後面這種方式,將除數是0當成異常丟擲,讓呼叫者處理異常,是比較合理的做法。

正確使用函式預設引數

  • 不推薦方式

  • 推薦方式

前一種方式會導致函式預設值改變,多次呼叫相互影響。正確方式是將函式預設值設定成None,在函式內部初始化預設引數。這裡只是針對傳遞取用型別的引數,如果是數字、字串等型別就不存在該問題。

利用元組傳遞多個函式引數

  • 推薦方式

作者:songleo

源自:https://www.jianshu.com/u/b2075cf393f8

宣告:文章著作權歸作者所有,如有侵權,請聯絡小編刪除

贊(0)

分享創造快樂