玩轉Python? 一文總結30種Python的竅門和技巧

2020-10-13 傻傻的人53473314

Python作為2019年必備語言之一,展現了不可替代作用。對於所有的數據科學工作者,如何提高使用Python的效率,這裡,總結了30種Python的最佳實踐、技巧和竅門。希望這些可以幫助大家在2020年提高工作的效率,並且在此過程中學習到一些有用的東西。歡迎喜歡Python的小夥伴們加我的Q群867067945,裡面有專業的大神給你解答各種困難。

1. 使用Python 3

Python官方宣布:從2020年1月1日起,正式不支持Python 2。本文有一堆的例子,只能在Python 3工作。如果你的版本還是Python 2.7版,趕緊升級到Python 3.x吧。

2.檢查所需的最低Python版本

大家可以在代碼中檢查Python版本,以確保沒有使用不兼容的版本運行腳本。使用以下簡單檢查:

import sys# 檢查python版本,如果是低於3.5就退出程序def check_version(): v = sys.version_info # print(v) # sys.version_info(major=3, minor=6, micro=5, releaselevel='final', serial=0) if v.major == 3 and v.minor >= 5: return print('Your current python is %d.%d. Please use Python 3.6.' % (v.major, v.minor)) exit(1)

3.使用IPython


IPython是一個增強的shell工具。可以進行代碼自動補全,其實還有很多命令,我也喜歡內置的所有magic命令。比如:

  • %cd —更改當前工作目錄
  • %edit —打開編輯器並在關閉編輯器後執行鍵入的代碼
  • %env —顯示當前環境變量
  • %pip install [pkgs] —在不離開交互式shell的情況下安裝軟體包
  • %time和%timeit—定時執行Python代碼

另一個有用的功能是引用先前命令的輸出。輸入和輸出是實際對象。你可以通過使用Out[3]來使用第三個命令的輸出。

使用以下命令安裝IPython:

pip3 install ipython

4.列表(list)理解

列表(list)理解可以代替醜陋的for循環來填充列表。列表理解的基本語法為:[ expression for item in list if conditional ]

一個非常簡單的示例,用數字序列填充列表:

[i for i in range(10)]

並且因為可以使用表達式,所以還可以進行一些數學運算,甚至調用外部函數。

最後,你可以使用if篩選列表。在這種情況下,我們僅保留可被2整除的值:

[i for i in range(10) if i%2==0]

5.檢查對象的內存使用情況

使用sys.getsizeof(),你可以檢查對象的內存使用情況。

6.返回多個值

Python中的函數可以返回多個變量,而無需字典,列表或類。

對於有限數量的返回值,這是可以的。但是超過3個值的任何內容都應放入類中。

7.使用data類

從Python 3.7版開始,Python提供data類。與常規類或其他替代方法(如返回多個值或字典)相比,它具有多個優點:

  • 數據類需要最少的代碼
  • 你可以比較data類,因為它__eq__已為您實現
  • 你也可以輕鬆列印數據類以進行調試,因為它__repr__也已實現
  • data類需要類型提示,從而減少了發生錯誤的機會

8.就地變量交換

一項巧妙的小技巧,可以節省幾行代碼。

a,b = b,a

9.合併字典(Python 3.5+)

從Python 3.5開始,合併字典變得更加容易:

如果鍵(key)重疊,則第一個詞典中的鍵(key)將被覆蓋。

10.首字母大小寫

使用capitalize()函數將字符串的首字母轉為大寫,其餘變為小寫。

"welcome".capitalize()

11.將字符串拆分為列表

你可以將字符串拆分為字符串列表。在這種情況下,我們分割空格字符:

list("welcome")

12.從字符串列表創建一個字符串

反之亦然,從上一個技巧開始,從列表中創建一個字符串,並在每個單詞之間添加一個空格字符:

" ".join(['2','0','2','0'])

13.表情符號


這將使人印象深刻或被排斥,這取決於誰在尋找。更嚴重的是,這可以派上用場,尤其是在分析社交媒體數據時。

首先,安裝表情符號模塊:

pip3 install emoji

安裝此程序後,您可以執行以下操作:

訪問emoji庫頁面(https:pypi.org/project/emoji/)以獲取更多示例和文檔。

14.列表(list)切片

列表切片的基本語法是:a[start:stop:step]

start,stop和step是可選的。如果不填寫,則默認為:

  • 0為 start
  • 字符串的結尾 end
  • step默認為1

這裡有些例子:



a=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]a[2:5:2]

15.反轉字符串和列表

你可以從上方使用切片符號來反轉字符串或列表。通過使用step=-1,將元素反轉:


a[::-1]

16.展示小貓


我終於找到了一個很好的藉口,可以在其中一篇文章中展示小貓了!但是,可能會使用它來顯示圖形等。首先,安裝Pillow(https://pypi.org/project/Pillow),它是Python圖像庫的一個分支:

pip3 install Pillow

現在,將該圖像下載到一個名為「 kitchess.jpg」的文件中:

你可以直接從IPython進行操作:



Pillow不僅可以顯示圖像,還可以做更多的事情。它可以分析,調整大小,過濾,增強,變形等。有關所有功能,請參閱文檔(https://pillow.readthedocs.io/en/stable/)。

17.使用map()

Python的內置函數之一稱為map()。map()的語法為:

map(function, something_iterable)

因此,你給它提供了要執行的功能以及要執行的某些功能。這可以是任何可迭代的事情。在下面的示例中,我將使用一個列表a=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]。

list(map(lambda x: x+1,a))

看一下自己的代碼,看看是否可以map()在某處使用而不是循環!

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

通過使用set()函數創建一個集合,你可以從列表或類似列表的對象中a=[1,1,2,3,4,4]獲取所有唯一元素。

set(a)

19.查找最常出現的值

要在列表或字符串中查找最頻繁出現的值:

test=[1,1,2,3,4,4,4,4]

您知道這為何有效嗎?在繼續閱讀之前,請先自己弄清楚。您沒有嘗試,對嗎?無論如何,我會告訴你:

  • max()將返回列表中的最大值。該key參數採用單個參數函數來自定義排序順序,在本例中為test.count。該函數應用於迭代器上的每個項目。
  • test.count是list的內置函數。它接受一個參數,並將計算該參數的出現次數。因此test.count(1)將返回2,test.count(4)返回4。
  • set(test) 返回測試的所有唯一值,因此{1、2、3、4} 因此,我們在單行代碼中所做的就是獲取test的所有唯一值,即{1, 2, 3, 4}。接下來,max將list.count函數應用到它們並返回最大值。

20.創建一個進度條

你可以創建自己的進度條,這很有趣。但是使用進度包更快:

pip3 install progress

現在,你可以輕鬆創建進度條。

以下動畫演示了所有可用的進度類型(動畫顯示可查看官網):


21.在交互式shell使用_

你可以使用下劃線運算符獲取最後一個表達式的結果,例如在IPython中,它看起來像:

In [1]: 3 * 3Out[1]: 9In [2]: _ + 3Out[2]: 12

這也可以在Python Shell中使用。此外,IPython shell允許使用Out[n]來獲得表達式在In [n]中的值例如,Out[1]在上面的示例中,_可以得到數字9。

22.快速創建Web伺服器

你可以快速啟動Web伺服器,以提供當前目錄的內容:

python3 -m http.server

如果你想與同事共享一些東西或想要測試一個簡單的HTML網站,這將很有用。

23.多行字符串

儘管可以在代碼中使用三引號將多行字符串包括在內,但這並不理想。放在三引號之間的所有內容都將成為字符串,包括格式,如下所示。我更喜歡第二種方法,該方法將多行連接在一起,可以很好地格式化代碼。唯一的缺點是你需要顯式添加換行符。

24.三元運算符,用於條件賦值

這是使代碼更簡潔同時又保持可讀性的另一種方法:

[on_true] if [expression] else [on_false]

舉個例子:

x = "Success!" if (y == 2) else "Failed!"

25.計數

您可以使用集合庫中的Counter來獲取包含列表中所有唯一元素計數的字典:

from collections import Countera=[1, 1, 2, 3, 4, 4]Counter(a)

26.比較運算符的連結

您可以在Python中連結比較運算符,以創建更易讀和簡潔的代碼:

27.添加一些顏色



使用Colorama(https://pypi.org/project/colorama/),你可以為終端添加一些顏色。

28.處理日期

python-dateutil模塊(https://pypi.org/project/python-dateutil/)提供了對標準datetime模塊的強大擴展。通過以下方式安裝:

pip3 install python-dateutil

你可以用這個庫做很多很酷的事情。我將把示例限制在我認為特別有用的一個:日誌文件中日期的模糊解析等。

只需記住:常規的Python日期時間功能在哪裡結束,python-dateutil就出現了!

29.整數除法


在Python 2中,除法運算符(/)默認為整數除法,除非操作數之一是浮點數。因此,你有以下行為:

#Python 2 5/2 = 2 5 / 2.0 = 2.5

在Python 3中,除法運算符默認為浮點除法,並且//運算符已成為整數除法。這樣我們得到:

#Python 3 5/2 = 2.5 5 // 2 = 2

有關此更改背後的全部動機,您應該閱讀PEP-0238(https://www.python.org/dev/peps/pep-0238/)。

30.使用chardet進行字符集檢測

您可以使用chardet模塊來檢測文件的字符集。在分析大量隨機文本時,這很有用。安裝方式:

pip install chardet

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

chardetect somefile.txtsomefile.txt: ascii with confidence 1.0

你還可以通過編程方式使用該庫,請查閱docs(https://chardet.readthedocs.io/en/latest/usage.html)。

新的一年開始的30條Python技巧和竅門。我希望大家喜歡它們。如果有任何問題,請隨時發表評論!

希望對大家有幫助!!!!

相關焦點

  • 一文 圖解Python大全 玩轉Python
    4 Python 文件處理5 python6 Python 異常7 Python 函數和模塊8 Python 面相對象:9 python教程如果你處於想學python或者正在學習python,python的視頻教程不少了吧,但是是最新的嗎?
  • 一文 圖解Python 玩轉Python 趕緊收藏
    文件處理5 python7 Python 函數和模塊8 Python 面相對象:9 python教程如果你處於想學python或者正在學習python,python的視頻教程不少了吧,但是是最新的嗎?說不定你學了可能是兩年前人家就學過的內容,在這小編分享一波2020最新的python全套教程最後小編為大家準備了8月份新出的python自學視頻教程,共計約415集,免費分享給大家!
  • Python學習資料總結
    關於Python的一些文章:把平時看到的一些關於Python的文章進行了整理,對於Python學習者來說是非常不錯滴;一、可以學習Python的地方這個是我在百度經驗看到別人總結的,覺得還不錯,直接拿過來用了~
  • 一文圖解Python 玩轉Python(附全套學習教程)
    >5 python7 Python 函數和模塊>9 python教程如果你處於想學python或者正在學習python,python的視頻教程不少了吧,但是是最新的嗎?說不定你學了可能是兩年前人家就學過的內容,在這小編分享一波2019最新的python全套教程最後小編為大家準備了6月份新出的python自學視頻教程,共計約415集,免費分享給大家!
  • @Python小白,一文讓你掌握Python爬蟲
    上面就是我推薦的一些入門的文本資料,最後三個,可以按照自己的水平閱讀學習也不一非要按照我推薦的順序,當然,光看是沒用的,上面的例子也要跟著做才能有收穫視頻慕課有的小夥伴可能一看書就犯困,更喜歡直接一點的視頻,我當初是書和視頻一起結合著看的
  • Python2 已終結,入手Python 3,你需要這30個技巧
    機器之心選自medium作者:Erik-Jan van Baaren機器之心編譯參與:王子嘉、一鳴Python2 在今年和我們說拜拜了,Python3 有哪些有趣而又實用的技巧呢
  • Python代碼優化技巧和竅門
    Python代碼優化技巧和竅門1-分析你的代碼1.1. 使用timeit模塊1.2. 使用高級的cProfile分析1.2.1. 關於 cProfile 的結果說明?下面,我們列出了一些最佳的Python代碼優化技巧和竅門。1-分析你的代碼如果您不了解你的代碼性能瓶頸所在,那麼在進一步優化代碼之前,這會顯得你很幼稚。因此,首先,使用以下兩種方法中的任何一種來分析您的代碼1.1.
  • 10分鐘玩轉Python+Selenium自動化測試,快速入門通道!
    根據最近面試的情況,把很多同學在實踐selenium的時候沒弄清的問題總結了一下,順便教大家如何快速玩轉selenium!現在測試工程師都在聊什麼?1、python會了嗎最近?2、selenium自動化你們團隊進度怎麼樣?3、你們自動化框架應用得如何?
  • Python 三十大實踐、建議和技巧
    新一年,我們先為大家準備 30 個非常優秀的 Python 實踐技巧。希望這些訣竅能在實際工作中幫助大家,並且學到一些有用的知識。1、使用 python 3由於官方從2020年1月1日起就停止了對python2.7的更新支持,因此本教程的大部分例子都只能在python 3環境下運行。
  • python運算符總結
    python取餘數和整數商python裡,用兩個星號,即 ** 代表冪運算,如下:這類運算的結果為是或否,python中,用兩個特殊的變量,True和False來表示是或否。如下:本文章基於版本python3,老版本中,不等於可以用 <> 來表示,python3已經移除了該運算符。python賦值運算符python和大部分語言一樣,用一個等於號來表示賦值。
  • 福利:大佬教你如何用 Python 自動化玩轉 Excel
    python有很多支持操作excel的第三方庫,xlwings是其中一個。xlwings還可以和matplotlib、numpy以及玩轉自如xlwings與VBA的配合非常完美,你可以在python中調用VBA,也可以在VBA
  • 一文總結學習 Python 的 14 張思維導圖
    首先,按順序依次展示了以下內容的一系列思維導圖: 基礎知識,數據類型(數字,字符串,列表,元組,字典,集合),條件&循環,文件對象,錯誤&異常,函數,模塊,面向對象編程 ;接著,結合這些思維導圖主要參考的資料,分享一下我的學習體驗,一方面可供初學者參考,另一方面,也便於大家結合思維導圖深入學習、理解、思考;最後,提供幾篇文章連結,方便希望從
  • 5年 Python 功力,總結了 10 個開發技巧
    usr/lib/python2.7/site-packages/redis-3.0.1-py2.7.egg/usr/lib64/python27.zip/usr/lib64/python2.7/usr/lib64/python2.7/plat-linux2/usr/lib64/python2.7/
  • python自動化PPT:如何玩轉自選圖形
    python自動化PPT:如何玩轉自選圖形上節對python自動化PPT的圖形基本概念做了詳細介紹,當然,要作出一篇精彩的PPT文檔,精彩的自選圖形必須要掌握,這節繼續來解讀這方面的知識。如何玩轉自選圖形自選圖形基礎自動形狀是規則的形狀。正方形,圓形,三角形,星形,那種東西。有182種不同的汽車形狀可供選擇。
  • 總結IDA遇到的python問題
    ida7.0已經切換到x64架構上去了,我們也給python 切換到x64上去了,同時也帶來了一些新的問題,但是這些問題之前我們也見過,這個貼子嘗試總結我們之前遇到的常見問題以及建議怎麼修復他們常見的錯誤LoadLibrary(C:\Program Files\IDA\plugins\python.dll) error: The specified
  • python學習方法總結(內附python的全套學習資料)
    ,我將在文末一一解答下面將從基礎語法,高階語法,前端開發web開發,爬蟲開發,自動化運維,數據分析,人工智慧介紹學習攻略,並附上全套學習資料,兩個可視化庫matplotlib和seaborn學完之後數據清洗,數據展示沒有問題,用python畫出了圖才能給別人講出有意思的故事同時也能為學習副本6-人工智慧打下牢固的基礎數據結構和算法
  • python初學者必看的學習路線 Python是近幾年比較火的程式語言
    6、Linux基礎 (1) 文件處理命令 (2) 權限管理命令 (3) 幫助命令 (4) 文件搜索命令 (5) 壓縮解壓命令 (6) 命令使用技巧
  • Python學習方法總結(內附python全套學習資料)
    先聊聊網際網路轉行那些事兒很多人是小白,想從事或轉行網際網路,想以python為切入口,那麼恭喜你,這可能是你離網際網路工作最捷徑的一條道路了,畢竟python相對於java,C等語言代碼量小,更加簡單易學,只要肯用心,最多只需要兩個月,就能找到一份對應的工作,當然任何一份技能要精進都需要一萬小時,得做好心理準備同時也許你有學歷,數學,學習方法等種種問題,我將在文末一一解答
  • 學會python文件操作,滑鼠好像沒用了,學習python第10天
    python文件操作python文件操作在日常辦公中,如果需要在計算機上寫一份工作總結,我們需要先新建文件,再寫入總結的內容,保存文件後關閉文件。而使用python文件操作來寫總結過程跟上述是類似的,但是其分為三個步驟:1、打開文件或者新建一個文件;2、讀/寫數據進文件中;3、關閉文件。下面羽憶教程為你介紹具體的編程操作流程。
  • 玩轉Python調試器
    如果你還只會使用print來定位python程序問題,那這篇文章就是為你寫的,這篇文章將帶你入門python調試器。python標準庫提供了一個叫pdb的調試器,它提供了調試所需的絕大多數常用功能,比如斷點、單行步進、堆棧幀數據的檢查等。