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

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)

分享創造快樂