溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Python的竅門(mén)和技巧有哪些

發(fā)布時(shí)間:2021-11-23 17:59:51 來(lái)源:億速云 閱讀:155 作者:iii 欄目:大數(shù)據(jù)

這篇文章主要講解了“Python的竅門(mén)和技巧有哪些”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“Python的竅門(mén)和技巧有哪些”吧!

1. 使用Python 3

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

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

大家可以在代碼中檢查Python版本,以確保沒(méi)有使用不兼容的版本運(yùn)行腳本。使用以下簡(jiǎn)單檢查:

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:returnprint('Your current python is %d.%d. Please use Python 3.6.' % (v.major, v.minor))
    exit(1)

3.使用IPython

Python的竅門(mén)和技巧有哪些

IPython是一個(gè)增強(qiáng)的shell工具??梢赃M(jìn)行代碼自動(dòng)補(bǔ)全,其實(shí)還有很多命令,我也喜歡內(nèi)置的所有magic命令。比如:

  • %cd —更改當(dāng)前工作目錄

  • %edit —打開(kāi)編輯器并在關(guān)閉編輯器后執(zhí)行鍵入的代碼

  • %env —顯示當(dāng)前環(huán)境變量

  • %pip install [pkgs] —在不離開(kāi)交互式shell的情況下安裝軟件包

  • %time和%timeit—定時(shí)執(zhí)行Python代碼

另一個(gè)有用的功能是引用先前命令的輸出。輸入和輸出是實(shí)際對(duì)象。你可以通過(guò)使用Out[3]來(lái)使用第三個(gè)命令的輸出。

使用以下命令安裝IPython:

pip3 install ipython

4.列表(list)理解

列表(list)理解可以代替丑陋的for循環(huán)來(lái)填充列表。列表理解的基本語(yǔ)法為:[ expression for item in list if conditional ]

一個(gè)非常簡(jiǎn)單的示例,用數(shù)字序列填充列表:

[i for i in range(10)]

并且因?yàn)榭梢允褂帽磉_(dá)式,所以還可以進(jìn)行一些數(shù)學(xué)運(yùn)算,甚至調(diào)用外部函數(shù)。

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

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

5.檢查對(duì)象的內(nèi)存使用情況

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

6.返回多個(gè)值

Python中的函數(shù)可以返回多個(gè)變量,而無(wú)需字典,列表或類(lèi)。

對(duì)于有限數(shù)量的返回值,這是可以的。但是超過(guò)3個(gè)值的任何內(nèi)容都應(yīng)放入類(lèi)中。

7.使用data類(lèi)

從Python 3.7版開(kāi)始,Python提供data類(lèi)。與常規(guī)類(lèi)或其他替代方法(如返回多個(gè)值或字典)相比,它具有多個(gè)優(yōu)點(diǎn):

  • 數(shù)據(jù)類(lèi)需要最少的代碼

  • 你可以比較data類(lèi),因?yàn)樗黖_eq__已為您實(shí)現(xiàn)

  • 你也可以輕松打印數(shù)據(jù)類(lèi)以進(jìn)行調(diào)試,因?yàn)樗黖_repr__也已實(shí)現(xiàn)

  • data類(lèi)需要類(lèi)型提示,從而減少了發(fā)生錯(cuò)誤的機(jī)會(huì)

8.就地變量交換

一項(xiàng)巧妙的小技巧,可以節(jié)省幾行代碼。

a,b = b,a

9.合并字典(Python 3.5+)

從Python 3.5開(kāi)始,合并字典變得更加容易:

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

10.首字母大小寫(xiě)

使用capitalize()函數(shù)將字符串的首字母轉(zhuǎn)為大寫(xiě),其余變?yōu)樾?xiě)。

"welcome".capitalize()

11.將字符串拆分為列表

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

list("welcome")

12.從字符串列表創(chuàng)建一個(gè)字符串

反之亦然,從上一個(gè)技巧開(kāi)始,從列表中創(chuàng)建一個(gè)字符串,并在每個(gè)單詞之間添加一個(gè)空格字符:

">

13.表情符號(hào)

Python的竅門(mén)和技巧有哪些

這將使人印象深刻或被排斥,這取決于誰(shuí)在尋找。更嚴(yán)重的是,這可以派上用場(chǎng),尤其是在分析社交媒體數(shù)據(jù)時(shí)。

首先,安裝表情符號(hào)模塊:

pip3 install emoji

安裝此程序后,您可以執(zhí)行以下操作:

14.列表(list)切片

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

start,stop和step是可選的。如果不填寫(xiě),則默認(rèn)為:

  • 0為 start

  • 字符串的結(jié)尾 end

  • step默認(rèn)為1

這里有些例子:

  •  

  •  

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

15.反轉(zhuǎn)字符串和列表

你可以從上方使用切片符號(hào)來(lái)反轉(zhuǎn)字符串或列表。通過(guò)使用step=-1,將元素反轉(zhuǎn):

  •  

a[::-1]

16.展示小貓

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

pip3 install Pillow

現(xiàn)在,將該圖像下載到一個(gè)名為“ kitchess.jpg”的文件中:

你可以直接從IPython進(jìn)行操作:

Python的竅門(mén)和技巧有哪些

Pillow不僅可以顯示圖像,還可以做更多的事情。它可以分析,調(diào)整大小,過(guò)濾,增強(qiáng),變形等。有關(guān)所有功能,請(qǐng)參閱文檔

17.使用map()

Python的內(nèi)置函數(shù)之一稱(chēng)為map()。map()的語(yǔ)法為:

map(function, something_iterable)

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

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

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

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

通過(guò)使用set()函數(shù)創(chuàng)建一個(gè)集合,你可以從列表或類(lèi)似列表的對(duì)象中a=[1,1,2,3,4,4]獲取所有唯一元素。

set(a)

19.查找最常出現(xiàn)的值

要在列表或字符串中查找最頻繁出現(xiàn)的值:

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

您知道這為何有效嗎?在繼續(xù)閱讀之前,請(qǐng)先自己弄清楚。您沒(méi)有嘗試,對(duì)嗎?無(wú)論如何,我會(huì)告訴你:

  • max()將返回列表中的最大值。該key參數(shù)采用單個(gè)參數(shù)函數(shù)來(lái)自定義排序順序,在本例中為test.count。該函數(shù)應(yīng)用于迭代器上的每個(gè)項(xiàng)目。

  • test.count是list的內(nèi)置函數(shù)。它接受一個(gè)參數(shù),并將計(jì)算該參數(shù)的出現(xiàn)次數(shù)。因此test.count(1)將返回2,test.count(4)返回4。

  • set(test) 返回測(cè)試的所有唯一值,因此{(lán)1、2、3、4} 因此,我們?cè)趩涡写a中所做的就是獲取test的所有唯一值,即{1, 2, 3, 4}。接下來(lái),max將list.count函數(shù)應(yīng)用到它們并返回最大值。

20.創(chuàng)建一個(gè)進(jìn)度條

你可以創(chuàng)建自己的進(jìn)度條,這很有趣。但是使用進(jìn)度包更快:

pip3 install progress

現(xiàn)在,你可以輕松創(chuàng)建進(jìn)度條。

21.在交互式shell使用_

你可以使用下劃線運(yùn)算符獲取最后一個(gè)表達(dá)式的結(jié)果,例如在IPython中,它看起來(lái)像:

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

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

22.快速創(chuàng)建Web服務(wù)器

你可以快速啟動(dòng)Web服務(wù)器,以提供當(dāng)前目錄的內(nèi)容:

python3 -m http.server

如果你想與同事共享一些東西或想要測(cè)試一個(gè)簡(jiǎn)單的HTML網(wǎng)站,這將很有用。

23.多行字符串

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

24.三元運(yùn)算符,用于條件賦值

這是使代碼更簡(jiǎn)潔同時(shí)又保持可讀性的另一種方法:

[on_true] if [expression] else [on_false]

舉個(gè)例子:

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

25.計(jì)數(shù)

您可以使用集合庫(kù)中的Counter來(lái)獲取包含列表中所有唯一元素計(jì)數(shù)的字典:

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

26.比較運(yùn)算符的鏈接

您可以在Python中鏈接比較運(yùn)算符,以創(chuàng)建更易讀和簡(jiǎn)潔的代碼:

27.添加一些顏色

Python的竅門(mén)和技巧有哪些

28.處理日期

python-dateutil模塊(https://pypi.org/project/python-dateutil/)提供了對(duì)標(biāo)準(zhǔn)datetime模塊的強(qiáng)大擴(kuò)展。通過(guò)以下方式安裝:

pip3 install python-dateutil

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

只需記?。撼R?guī)的Python日期時(shí)間功能在哪里結(jié)束,python-dateutil就出現(xiàn)了!

29.整數(shù)除法

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

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

在Python 3中,除法運(yùn)算符默認(rèn)為浮點(diǎn)除法,并且//運(yùn)算符已成為整數(shù)除法。這樣我們得到:

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

30.使用chardet進(jìn)行字符集檢測(cè)

您可以使用chardet模塊來(lái)檢測(cè)文件的字符集。在分析大量隨機(jī)文本時(shí),這很有用。安裝方式:

pip install chardet

現(xiàn)在你有了一個(gè)名為chardetect的額外命令行工具,它可以像這樣使用

chardetect somefile.txtsomefile.txt: ascii with confidence 1.0

感謝各位的閱讀,以上就是“Python的竅門(mén)和技巧有哪些”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)Python的竅門(mén)和技巧有哪些這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI