日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Python的26個小技巧

Python是世界上***的編程語言之一。

這有許多原因:

  •     容易學(xué)習(xí)
  •     可跨平臺
  •     擁有大量的模塊和庫

我把使用Python作為數(shù)據(jù)科學(xué)家日常工作的一部分。一路上,我學(xué)會了一些有用的技巧和要點。

在這里,我嘗試以A - Z格式分享其中的一些。這些“技巧”大部分是我在日常工作中使用或偶然發(fā)現(xiàn)的。我在瀏覽Python標(biāo)準(zhǔn)庫文檔時發(fā)現(xiàn)了一些。另一些是我在搜索PyPi時發(fā)現(xiàn)的。

然而,值得稱贊的是其中的四五個是我在awesome-python.com發(fā)現(xiàn)的。這是數(shù)百個有趣的Python工具和模塊的精選列表。值得瀏覽尋找靈感!

all or any

python之所以如此受歡迎的原因之一是因為它可讀性和表現(xiàn)力強。人們經(jīng)常開玩笑說Python是“可執(zhí)行偽代碼”。但是,當(dāng)你可以編寫這樣的代碼時,很難用其他方式反駁:

bashplotlib

你想在控制臺中繪制圖表嗎?

你就可以在控制臺中畫出圖表了。

collections

python有一些很好的默認數(shù)據(jù)類型,但有時它們表現(xiàn)的不如你期望的哪樣。幸運的是,Python標(biāo)準(zhǔn)庫提供了collections模塊。這個方便的附加組件為您提供了更多的數(shù)據(jù)類型。

dir

你有沒有想過如何在Python對象內(nèi)部查看它的屬性?這當(dāng)然可以??纯聪旅孢@條命令行:

當(dāng)以交互方式運行Python時,這可能是一個非常有用的功能,可以動態(tài)地查看您正在使用的對象和模塊。

emoji

是的,這是真的!

不要假裝你不想去嘗試......

from __future__ import

Python的流行導(dǎo)致是總是有新版本在開發(fā)中。新版本意味著新功能——除非你的版本已經(jīng)過時。

然而,不要害怕。__future__模塊允許你從Python的未來的版本導(dǎo)入功能。這簡直就像時間旅行,或者魔法什么的。

為什么不開始導(dǎo)入花括號?

geopy

地理可能是程序員難以挑戰(zhàn)的領(lǐng)域,時常讓人找不清方向。但是geopy模塊讓這變得異常簡單。

它通過抽取一系列不同的地理編碼服務(wù)APIs來工作。使你能夠獲得一個地方的完整街道地址、緯度、經(jīng)度和海拔。還有一個有用的distance類。以你喜歡的單位計算兩個位置之間的距離。

howdoi

遇到編碼問題,但不記得你以前見過的解決方案了?需要檢索StackOverflow,但不想離開終端?

那么你需要這個有用的命令行工具。

無論你有什么問題,都要問它,它會盡***努力回答你的問題

但是請注意——它從StackOverflow的置頂答案中抓取代碼。因此可能不總是提供最有用的信息...

inspect

python的inspect模塊非常有助于理解幕后發(fā)生的事情。你甚至可以用它調(diào)用它自己的方法!

下面的代碼示例使用inspect.getsource輸出它自己的源代碼。它還使用inspect.getmodule輸出由它定義的模塊。

***一行代碼打印出自己的行號。

當(dāng)然,除了這些瑣碎的用途之外,inspect模塊對于理解代碼正在做什么可能會很有用。你也可以用它來編寫自我記錄的代碼。

Jedi

Jedi庫是一個自動補全和代碼分析庫。它使編寫代碼更快、更有成效。

除非你正在開發(fā)自己的IDE,否則你可能會對使用Jedi作為編輯器插件最感興趣。幸運的是,這已經(jīng)成為現(xiàn)實了!然而,你可能已經(jīng)在使用Jedi。IPython項目正利用Jedi的代碼自動補全功能。

**kwargs

學(xué)習(xí)任何語言時,都會有許多里程碑。對于Python來說,理解神秘的**kwargs語法可能算一個。

字典對象前面的雙星號允許您將該字典的內(nèi)容作為命名參數(shù)傳遞給函數(shù)。

字典的鍵是參數(shù)名,值是傳遞給函數(shù)的值。你甚至不需要用kwargs命名字典!、

當(dāng)您想要編寫能夠處理事先未定義的命名參數(shù)的函數(shù)時,這很有用。

List comprehensions

關(guān)于Python編程,我最喜歡的事情之一是它的列表生成。

這些表達式使得容易編寫非常干凈的代碼,讀起來幾乎像自然語言。

你可以在這里閱讀更多關(guān)于如何使用它們的信息。

map

python通過許多內(nèi)置特性支持功能編程。map函數(shù)是最有用的函數(shù)之一——特別是與lambda函數(shù)結(jié)合使用。

在上面的例子中,map將一個簡單的lambda函數(shù)應(yīng)用于x中的每個元素。它返回一個map對象,該對象可以轉(zhuǎn)換為一些可迭代的對象,如列表或元組。

newspaper3k

如果你還沒有見過它,那么準(zhǔn)備好讓Python的newspaper3k模塊震撼你。

它允許你從一系列領(lǐng)先的國際出版物中檢索新聞文章和相關(guān)元數(shù)據(jù)。您可以檢索圖像、文本和作者姓名。

它甚至有一些內(nèi)置的NLP功能。

因此,如果你想在下一個項目中使用BeautifulSoup或其他自制的網(wǎng)頁爬蟲庫,那么省下你的時間和精力,用代替。

Operator overloading

python為運算符重載提供了支持,這是一個讓你聽起來像個合法的計算機科學(xué)家的術(shù)語。

這實際上是一個簡單的概念。有沒有想過python為什么允許你使用"+"運算符來相加數(shù)字以及連接字符串?這就是運算符重載。

你可以用特殊的方法定義使用Python標(biāo)準(zhǔn)運算符符號的對象。這允許你在與你正在處理的對象相關(guān)的上下文中使用它們

pprint

python的默認print函數(shù)的確可以完成它的工作。但是嘗試輸出出任何大的嵌套對象時,結(jié)果會很難看。

這里有pretty-print標(biāo)準(zhǔn)庫??梢砸砸子陂喿x的格式輸出出復(fù)雜的結(jié)構(gòu)化對象。

對于任何處理non-trivial數(shù)據(jù)類型的Python開發(fā)人員來說都是必不可少的。

queue

python支持多線程,標(biāo)準(zhǔn)庫的queue模塊有助于實現(xiàn)這一點。

此模塊允許你實現(xiàn)隊列數(shù)據(jù)結(jié)構(gòu)。這些數(shù)據(jù)結(jié)構(gòu)允許您根據(jù)特定規(guī)則添加和檢索條目。

先進先出(FIFO)隊列允許你按對象添加的順序檢索對象。后進先出(LIFO)隊列允許你先訪問最近添加的對象。

***,優(yōu)先級隊列允許你根據(jù)對象的排序順序檢索對象。

這里有如何在Python中使用隊列進行多線程編程的示例。

__repr__

在Python中定義類或?qū)ο髸r,提供一種很有用的官方支持的方式將對象呈現(xiàn)為字符串。例如:

這使得調(diào)試代碼更加容易??梢蕴砑拥侥愕念惗x中,如下所示:

sh

python是一種很棒的腳本語言。有時使用標(biāo)準(zhǔn)的os和sbprocess庫會有點令人頭疼。

sh庫提供了一個簡潔的替代方案。

它允許你調(diào)用任何程序,就好像它是一個普通的函數(shù)一樣——對于自動化工作流和任務(wù)非常有用,所有這些都可以用Python完成。

Type hints

Python是一種動態(tài)類型語言。定義變量、函數(shù)、類等時,不需要指定數(shù)據(jù)類型。

這有助于縮短開發(fā)時間。然而,沒有什么比簡單的類型問題導(dǎo)致的運行錯誤更令人討厭的了。

自Python 3.5以來,你可以選擇在定義函數(shù)時提供類型提示。

你也可以定義類型別名:

雖然這不是強制性的,但是類型注釋可以讓你的代碼更容易被理解。

它們還允許你在運行之前使用類型檢查工具來捕獲這些雜散的類型錯誤。如果你正在進行大型復(fù)雜的項目,這很值得的使用!

uuid

生成通用唯一標(biāo)識(UUID)的一種快速簡單的方法是使用Python標(biāo)準(zhǔn)庫的UUID模塊。

這可以產(chǎn)生一個隨機的128位數(shù)字,幾乎可以肯定這個數(shù)字是唯一的。

事實上,可以生成超過2112個可能的UUID。超過5x1036(或5,000,000,000,000,000,000,000,000,000,000,000,000)。

在給定的集合中找到重復(fù)的概率非常低。即使有萬億個UUID,重復(fù)存在的概率也遠低于十億分之一。非常有用的兩行代碼。

Virtual environments

這可能是我最喜歡的關(guān)于Python的東西。

你很可能在同一時間處理多個Python項目。不幸的是,有時兩個項目將依賴于同一依賴關(guān)系的不同版本。你選擇在你的系統(tǒng)上安裝什么?

幸運的是,Python對虛擬環(huán)境的支持讓你可以兼顧兩者。在命令行中:

現(xiàn)在,你可以在同一臺機器上分別存在Python的獨立版本和安裝環(huán)境。

wikipedia

維基百科有一個很好的API,允許用戶編程訪問***的完全免費的知識和信息。

維基百科模塊使得訪問這個API變得非常方便。

像真實的網(wǎng)站一樣,該模塊支持多語言、頁面消除歧義、隨機頁面檢索,甚至還有一個donate方法.

xkcd

幽默是Python語言的一個重要特征——畢竟,它是以英國喜劇《巨蟒飛行馬戲團》命名的。

Python的許多官方文檔都引用了該喜劇出名的獨幕。

盡管如此,幽默感并不局限于官方文檔。試試下面的代碼:

永遠不要改變,Python。永不改變。

YAML

YAML代表“YAML Ain’t Markup Language”,它是一種數(shù)據(jù)格式化語言,是JSON的超集。

與JSON不同,它可以存儲更復(fù)雜的對象并引用自己的元素。你也可以寫注釋,使其特別適合于編寫配置文件。

PyYAML模塊允許你將YAML與Python一起使用。這樣安裝它:

然后導(dǎo)入到項目中:

PyYaML允許你存儲任何數(shù)據(jù)類型的Python對象,以及任何用戶定義類的實例。

zip

對你來說,這是***一招,真的很酷。曾經(jīng)需要將兩個列表合成一個字典?

zip內(nèi)置函數(shù)接受多個可重復(fù)對象,并返回元組列表。每個元組按位置索引對輸入對象的元素進行分組。

您也可以通過對對象調(diào)用*zip來“解壓縮”對象。

感謝閱讀!

到這里你已經(jīng)讀完全文,Python的26個小技巧——希望你從中得到了對下一個項目有用的東西。

Python是一種非常多樣且適合開發(fā)的語言,所以我肯定有很多東西沒有包括在內(nèi)。

請在下面留言,分享你自己最喜歡的Python技巧!


網(wǎng)站題目:Python的26個小技巧
轉(zhuǎn)載來源:http://m.5511xx.com/article/cdecjsc.html