Python 三十個實踐建議和技巧,小白必看

前言:

這次為大家準備 30 個非常優秀的 Python 實踐技巧。

希望這些訣竅能在實際工作中幫助大家,並且學到一些有用的知識。

Python 三十個實踐建議和技巧,小白必看

1、使用 python 3

由於官方從2020年1月1日起就停止了對python2.7的更新支持,因此本教程的大部分例子都只能在python 3環境下運行。

如果你仍然在使用2.7版本,請先升級到python 3。

2、檢查並使用滿足需求的最小python版本

你可以在代碼中檢查Python 版本,以確保你的代碼使用者沒有使用不兼容的版本運行腳本。

使用以下代碼進行簡單的檢查:

Python 三十個實踐建議和技巧,小白必看

3、使用IPython:

IPython 基本上是一個增強的shell,僅僅是為了自動補全功能,IPython也是值得使用的,但其實它還有更多作用,包括內建的Magic命令,這裡列舉了一些:

%cd:改變當前的工作目錄

%edit:打開編輯器並在關閉編輯器後執行鍵入的代碼

%env:顯示當前的環境變量

%pip:install [pkgs] 在不離開交互式shell的情況下安裝功能包

%time 和 %timeit:類似於python中的time模塊,可以為代碼運行計時

IPython的另一個有用功能是可以使用之前任意一行代碼的輸出,代碼的輸入和輸入實際上都是對象,例如可以通過 Out[3] 來使用第三次運行代碼的輸出對象。

安裝IPython的指令是:

<code>pip3 install ipython/<code>

4.列表解析式

列表解析式可以用來替換通過loop來填充列表的醜陋方法,其基本語法是:

<code>[ expressionforiteminlistifconditional ]/<code>

一個非常基礎的例子,用於生成包含連續數字的列表:

Python 三十個實踐建議和技巧,小白必看

由於可以使用表達式,因此可以通過更復雜的數學方法來生成列表:

Python 三十個實踐建議和技巧,小白必看

甚至也可以調用外部函數:

Python 三十個實踐建議和技巧,小白必看

最後,也可以用if作為生成條件來對列表進行過濾。在下面的例子中,只有偶數被保留:

Python 三十個實踐建議和技巧,小白必看

5、檢查對象的內存佔用情況

通過sys.getsizeof(object)命令可以查看任何對象的內存使用情況:

Python 三十個實踐建議和技巧,小白必看

這是因為range函數返回的是一個類對象,這個類對象表現為一個列表。

因此使用range函數比使用實際的包含一萬個數字的列表要更加節省內存。

可以通過上面第四條中提到的列表解析式創建一個同樣大小的實際列表:

Python 三十個實踐建議和技巧,小白必看

實際內存佔用87632字節,遠高於通過range函數生成的對象。

6、返回多個值

Pyhon中的函數都可以返回多個變量,而不需要字典,列表或者類作為返回對象。方法如下:

Python 三十個實踐建議和技巧,小白必看

對於有限數量的返回值,這是可以的。

但是任何超過3個值的內容都應該放到一個(data)類中。

7、使用 data 類

從3.7版本開始,python提供了 data 類。

與常規類或其他替代方法(如返回多個值或字典)相比,有以下幾個優點:

數據類需要至少一定數量的代碼 可以通過 eq 方法來比較不同的data類對象 可以 repr 通過很容易地打印一個數據類來進行調試 數據類需要類型提示,因此減少了 bug

一個data類的例子如下:

Python 三十個實踐建議和技巧,小白必看

8、就地變量交換

一個簡潔的技巧,可以節省幾行代碼:

Python 三十個實踐建議和技巧,小白必看

9、字典合併(Python 3.5+)

從python 3.5開始,字典的合併變得更簡單了:

Python 三十個實踐建議和技巧,小白必看

10、將字符串轉化為標題格式

在標題格式中,非介詞的首字母會大寫。可以通過.title()方法實現:

Python 三十個實踐建議和技巧,小白必看

11、將字符串分離並存儲到列表中

可以按任意字符來分割字符串,並存儲到列表中,例如按空格來分割字符串:

Python 三十個實踐建議和技巧,小白必看

12、將列表中的字符串合併到一起

與上一條的功能正好相反,從列表中創建字符串,並在兩個單詞間插入空格:

Python 三十個實踐建議和技巧,小白必看

也許你會疑惑,為什麼不使用mylist.join(" ")呢?歸根結底,String.join()函數不僅可以連接列表,還可以連接任何可迭代的列表。

將它放在String中會阻止在多個位置實現相同的功能。

13、Emoji

Python 三十個實踐建議和技巧,小白必看

這些表情具有很強的表達能力,能給人留下深刻印象。更重要的是,這在分析社交媒體數據時尤其有用。

首先通過以下命令安裝emoji模塊:

<code>pip3 install emoji/<code>

可以按照以下方法使用表情:

Python 三十個實踐建議和技巧,小白必看

14、列表切片操作

列表切片的基本語法是:

<code>a[start:stop:step]
start,stop和step都是可選的(可填可不填),默認值是:
start:0
stop:列表的末尾
step:1/<code>

一些例子如下:

Python 三十個實踐建議和技巧,小白必看

15、翻轉字符串和列表

可以用切片操作來翻轉列表或字符串,將step設置為負值即可實現:

Python 三十個實踐建議和技巧,小白必看

16、圖片顯示

可以通過Pillow模塊來顯示圖片,例如顯示Kitty小貓,首先安裝python圖片庫:

<code>pip3 install Pillow/<code>

然後下載你要顯示的圖片,並重命名。然後可以通過以下命令來顯示圖片:

Python 三十個實踐建議和技巧,小白必看

或者也可以直接通過IPython來顯示:

Python 三十個實踐建議和技巧,小白必看

Pillow的功能遠不止顯示圖片。

它可以對圖片進行分析,調整大小,濾波,增強,變形等等。

17、使用map()函數

Python的一個內建函數是 map()。

map()的基本語法是:

<code>map(function, something_iterable)/<code>

傳入的參數是一個函數,和一個需要執行的對象,可以是任何可迭代對象。

在下面的例子中使用的是list:

Python 三十個實踐建議和技巧,小白必看

map()是一個代替循環的好方式,可以在你的代碼中嘗試使用map()函數。

18、從列表或字符串中獲取唯一元素

通過set()函數可以將列表或字符串轉換為集合,集合中的不含重複元素:

Python 三十個實踐建議和技巧,小白必看

19、找出最常出現的值

查找列表或字符串中最常出現的值:

Python 三十個實踐建議和技巧,小白必看

你可以嘗試自行理解上述代碼。

好吧,也許你並沒有嘗試。上述代碼的工作原理如下:

<code>max()將返回列表中的最大值。key參數接受單個參數函數確定定製排序順序,在本例中,它是test.count,該函數應用於iterable對象中的每個元素。 

.count()是列表的一個內建函數,該函數接收一個參數,並計算該參數的出現次數。因此在本例中,test.count(1)返回2,testcount(4)返回4。
set(test)返回test列表中的所有唯一值,因此是{1,2,3,4}。
因此在上面的這行語句中我們首先找出了test列表的所有獨特值,即{1,2,3,4}。接著,將.count函數應用於set中的每個值,得到一個數量列表,然後通過max找出數量最大的值。/<code>

20、創建進度條

可以自行創建進度條,但也可以通過progress模塊來快速創建:

<code>pip3 install progress/<code>

然後通過以下代碼來創建進度條:

Python 三十個實踐建議和技巧,小白必看

效果如下:

Python 三十個實踐建議和技巧,小白必看

21、在交互式shell中使用用 _ 來獲取上一個表達式的運行結果可以使用下劃線操作符來獲取最後運行的表達式的輸出,在IPython中操作如下:

Python 三十個實踐建議和技巧,小白必看

這種方法在python shell中也是適用的,IPython還可以通過Out[n]來獲取任意第n個表達式的輸出結果。

22、快速創建web服務器

您可以快速啟動web服務器,來提供當前工作目錄的內容:

<code>python3-mhttp.server/<code>

如果您想與同事共享一些內容,或者想測試一個簡單的HTML站點,這是非常有用的。

23、多行字符串 雖然可以使用三重引號在代碼中包含多行字符串,但這並不理想。

在三重引號之間的所有內容都變成字符串,包括格式。

相比我更喜歡第二種方式,它將多行連接在一起,允許你很好地格式化代碼。

惟一的缺點是需要顯式地放入新行:

Python 三十個實踐建議和技巧,小白必看

24、用於條件賦值的三元運算符這是另一種使你代碼變得簡潔,同時保持可讀性的方法:

<code>[on_true]if[expression]else[on_false]/<code>

一個簡單的例子如下:

<code>x ="Success!"if(y == 2)else"Failed!"/<code>

25、統計元素的出現次數

可以使用Collections依賴包中的Counter方法來獲得一個包含列表中所有惟一元素計數的字典:

Python 三十個實踐建議和技巧,小白必看

26、比較運算符的連接

可以在python中鏈接比較運算符,從而使代碼更簡潔,可讀性更強:

Python 三十個實踐建議和技巧,小白必看

27、加入色彩:

Python 三十個實踐建議和技巧,小白必看

通過 Colorama 依賴包,可以在終端中添加更多色彩:

Python 三十個實踐建議和技巧,小白必看

28、日期處理 python-dateutil模塊為標準的datetime模塊提供了強大的擴展。首先安裝該模塊:

<code>pip3 install python-dateutil/<code>

你可以用這個庫做很多很酷的事情。

我講把我認為特別有用的一個功能作為示例:日誌文件中日期的模糊解析等

如下:

Python 三十個實踐建議和技巧,小白必看

只要記住,如果datatime不具備某個功能,那datautil一定有該功能,datautil是datatime功能的延續。 29、整除 在Python 2中,除法運算符(/)默認為整數除法,除非其中一個操作數是浮點數。

如下:

Python 三十個實踐建議和技巧,小白必看

在python3中,除法運算符/默認為浮點除法,//運算符變成了整數除法。所以有:

Python 三十個實踐建議和技巧,小白必看

30、通過chardet檢測字符集合 可以使用chardet模塊來檢測文件中的字符集合。這在分析大量隨機文本時非常有用。

安裝chardet模塊:

<code>pip install chardet/<code>

現在你有了一個額外的命令行工具chardetect,它可以這樣使用:

Python 三十個實踐建議和技巧,小白必看

你也可以通過編程的方式來使用這個依賴包,以上就是30個python的技巧,希望這些技巧能幫助你在學習,工作中一些幫助。

最後小編幫助大家整理了一套python教程,下面展示了部分,希望也能幫助對編程感興趣,想做數據分析,人工智能、爬蟲或者希望從事編程開發的小夥伴,畢竟python工資也還可以,如果能幫到你請點贊、點贊、點贊。

Python 三十個實踐建議和技巧,小白必看

Python 三十個實踐建議和技巧,小白必看

Python 三十個實踐建議和技巧,小白必看

Python 三十個實踐建議和技巧,小白必看

Python 三十個實踐建議和技巧,小白必看

PS:如果你喜歡python,並覺得這篇文章對你有益的話,麻煩多多點贊關注支持!!!!



分享到:


相關文章: