1. 程式人生 > >五年老程式設計師來傳授你26的Python神技!掌握此技能就掌握高薪!

五年老程式設計師來傳授你26的Python神技!掌握此技能就掌握高薪!

五年老程式設計師來傳授你26的Python神技!掌握此技能就掌握高薪!

 

在這裡,我嘗試以A - Z格式分享其中的一些。

這些“技巧”大部分是我在日常工作中使用或偶然發現的。我在瀏覽Python標準庫文件時發現了一些。另一些是我在搜尋PyPi時發現的。

然而,值得稱讚的是其中的四五個是我在awesome-python.com發現的。這是數百個有趣的Python工具和模組的精選列表。值得瀏覽尋找靈感!

五年老程式設計師來傳授你26的Python神技!掌握此技能就掌握高薪!

 

bashplotlib

你想在控制檯中繪製圖表嗎?

 

五年老程式設計師來傳授你26的Python神技!掌握此技能就掌握高薪!

 

 

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

collections

python有一些很好的預設資料型別,但有時它們表現的不如你期望的哪樣。

幸運的是,Python標準庫提供了collections模組。這個方便的附加元件為您提供了更多的資料型別。

進群:960410445  獲取精心準備的大禮包!

 

五年老程式設計師來傳授你26的Python神技!掌握此技能就掌握高薪!

 

 

dir

你有沒有想過如何在Python物件內部檢視它的屬性?這當然可以。

看看下面這條命令列:

 

五年老程式設計師來傳授你26的Python神技!掌握此技能就掌握高薪!

 

 

當以互動方式執行Python時,這可能是一個非常有用的功能,可以動態地檢視您正在使用的物件和模組。

emoji

是的,這是真的!

 

五年老程式設計師來傳授你26的Python神技!掌握此技能就掌握高薪!

 

 

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

五年老程式設計師來傳授你26的Python神技!掌握此技能就掌握高薪!

 

五年老程式設計師來傳授你26的Python神技!掌握此技能就掌握高薪!

 

五年老程式設計師來傳授你26的Python神技!掌握此技能就掌握高薪!

 

from __future__ import

Python的流行導致是總是有新版本在開發中。新版本意味著新功能——除非你的版本已經過時。

然而,不要害怕。__future__模組允許你從Python的未來的版本匯入功能。這簡直就像時間旅行,或者魔法什麼的。

 

五年老程式設計師來傳授你26的Python神技!掌握此技能就掌握高薪!

 

 

為什麼不開始匯入花括號?

geopy

地理可能是程式設計師難以挑戰的領域,時常讓人找不清方向。但是geopy模組讓這變得異常簡單。

 

五年老程式設計師來傳授你26的Python神技!掌握此技能就掌握高薪!

 

 

它通過抽取一系列不同的地理編碼服務APIs來工作。使你能夠獲得一個地方的完整街道地址、緯度、經度和海拔。

還有一個有用的distance類。以你喜歡的單位計算兩個位置之間的距離。

五年老程式設計師來傳授你26的Python神技!掌握此技能就掌握高薪!

 

五年老程式設計師來傳授你26的Python神技!掌握此技能就掌握高薪!

 

howdoi

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

那麼你需要這個有用的命令列工具。

 

五年老程式設計師來傳授你26的Python神技!掌握此技能就掌握高薪!

 

 

無論你有什麼問題,都要問它,它會盡最大努力回答你的問題

 

五年老程式設計師來傳授你26的Python神技!掌握此技能就掌握高薪!

 

 

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

 

五年老程式設計師來傳授你26的Python神技!掌握此技能就掌握高薪!

 

 

inspect

python的inspect模組非常有助於理解幕後發生的事情。你甚至可以用它呼叫它自己的方法!

下面的程式碼示例使用inspect.getsource()輸出它自己的原始碼。它還使用inspect.getmodule()輸出由它定義的模組。

最後一行程式碼打印出自己的行號。

 

五年老程式設計師來傳授你26的Python神技!掌握此技能就掌握高薪!

 

 

當然,除了這些瑣碎的用途之外,inspect模組對於理解程式碼正在做什麼可能會很有用。你也可以用它來編寫自我記錄的程式碼。

Jedi

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

除非你正在開發自己的IDE,否則你可能會對使用Jedi作為編輯器外掛最感興趣。幸運的是,這已經成為現實了!

然而,你可能已經在使用Jedi。IPython專案正利用Jedi的程式碼自動補全功能。

**kwargs

學習任何語言時,都會有許多里程碑。對於Python來說,理解神祕的**kwargs語法可能算一個。

字典物件前面的雙星號允許您將該字典的內容作為命名引數傳遞給函式。

字典的鍵是引數名,值是傳遞給函式的值。你甚至不需要用kwargs命名字典!、

 

五年老程式設計師來傳授你26的Python神技!掌握此技能就掌握高薪!

 

 

當您想要編寫能夠處理事先未定義的命名引數的函式時,這很有用。

List comprehensions

關於Python程式設計,我最喜歡的事情之一是它的列表生成。

這些表示式使得容易編寫非常乾淨的程式碼,讀起來幾乎像自然語言。

你可以在這裡閱讀更多關於如何使用它們的資訊。

 

五年老程式設計師來傳授你26的Python神技!掌握此技能就掌握高薪!

 

 

map

python通過許多內建特性支援功能程式設計。map()函式是最有用的函式之一——特別是與lambda函式結合使用。

 

五年老程式設計師來傳授你26的Python神技!掌握此技能就掌握高薪!

 

 

在上面的例子中,map()將一個簡單的lambda函式應用於x中的每個元素。它返回一個map物件,該物件可以轉換為一些可迭代的物件,如列表或元組。

newspaper3k

如果你還沒有見過它,那麼準備好讓Python的newspaper3k模組震撼你。

它允許你從一系列領先的國際出版物中檢索新聞文章和相關元資料。您可以檢索影象、文字和作者姓名。

它甚至有一些內建的NLP功能。

因此,如果你想在下一個專案中使用BeautifulSoup或其他自制的網頁爬蟲庫,那麼省下你的時間和精力,用

五年老程式設計師來傳授你26的Python神技!掌握此技能就掌握高薪!

 

代替。

Operator overloading

python為運算子過載提供了支援,這是一個讓你聽起來像個合法的電腦科學家的術語。

這實際上是一個簡單的概念。有沒有想過python為什麼允許你使用"+"運算子來相加數字以及連線字串?這就是運算子過載。

你可以用特殊的方法定義使用Python標準運算子符號的物件。這允許你在與你正在處理的物件相關的上下文中使用它們

 

五年老程式設計師來傳授你26的Python神技!掌握此技能就掌握高薪!

 

 

pprint

python的預設print函式的確可以完成它的工作。但是嘗試輸出出任何大的巢狀物件時,結果會很難看。

這裡有pretty-print標準庫。可以以易於閱讀的格式輸出出複雜的結構化物件。

對於任何處理non-trivial資料型別的Python開發人員來說都是必不可少的。

 

五年老程式設計師來傳授你26的Python神技!掌握此技能就掌握高薪!

 

 

queue

python支援多執行緒,標準庫的queue模組有助於實現這一點。

此模組允許你實現佇列資料結構。這些資料結構允許您根據特定規則新增和檢索條目。

先進先出(FIFO)佇列允許你按物件新增的順序檢索物件。後進先出(LIFO)佇列允許你先訪問最近新增的物件。

最後,優先順序佇列允許你根據物件的排序順序檢索物件。

這裡有如何在Python中使用佇列進行多執行緒程式設計的示例。

__repr__

在Python中定義類或物件時,提供一種很有用的官方支援的方式將物件呈現為字串。例如:

 

五年老程式設計師來傳授你26的Python神技!掌握此技能就掌握高薪!

 

 

這使得除錯程式碼更加容易。可以新增到你的類定義中,如下所示:

 

五年老程式設計師來傳授你26的Python神技!掌握此技能就掌握高薪!

 

 

sh

python是一種很棒的指令碼語言。有時使用標準的os和sbprocess庫會有點令人頭疼。

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

它允許你呼叫任何程式,就好像它是一個普通的函式一樣——對於自動化工作流和任務非常有用,所有這些都可以用Python完成。

 

五年老程式設計師來傳授你26的Python神技!掌握此技能就掌握高薪!

 

 

Type hints

Python是一種動態型別語言。定義變數、函式、類等時,不需要指定資料型別。

這有助於縮短開發時間。然而,沒有什麼比簡單的型別問題導致的執行錯誤更令人討厭的了。

自Python 3.5以來,你可以選擇在定義函式時提供型別提示。

 

五年老程式設計師來傳授你26的Python神技!掌握此技能就掌握高薪!

 

 

你也可以定義類型別名:

 

五年老程式設計師來傳授你26的Python神技!掌握此技能就掌握高薪!

 

 

雖然這不是強制性的,但是型別註釋可以讓你的程式碼更容易被理解。

它們還允許你在執行之前使用型別檢查工具來捕獲這些雜散的型別錯誤。如果你正在進行大型複雜的專案,這很值得的使用!

uuid

生成通用唯一標識(UUID)的一種快速簡單的方法是使用Python標準庫的UUID模組。

五年老程式設計師來傳授你26的Python神技!掌握此技能就掌握高薪!

 

五年老程式設計師來傳授你26的Python神技!掌握此技能就掌握高薪!

 

這可以產生一個隨機的128位數字,幾乎可以肯定這個數字是唯一的。

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

在給定的集合中找到重複的概率非常低。即使有萬億個UUID,重複存在的概率也遠低於十億分之一。非常有用的兩行程式碼。

Virtual environments

這可能是我最喜歡的關於Python的東西。

你很可能在同一時間處理多個Python專案。不幸的是,有時兩個專案將依賴於同一依賴關係的不同版本。你選擇在你的系統上安裝什麼?

幸運的是,Python對虛擬環境的支援讓你可以兼顧兩者。在命令列中:

 

五年老程式設計師來傳授你26的Python神技!掌握此技能就掌握高薪!

 

 

現在,你可以在同一臺機器上分別存在Python的獨立版本和安裝環境。

wikipedia

維基百科有一個很好的API,允許使用者程式設計訪問無與倫比的完全免費的知識和資訊。

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

 

五年老程式設計師來傳授你26的Python神技!掌握此技能就掌握高薪!

 

 

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

xkcd

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

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

儘管如此,幽默感並不侷限於官方文件。試試下面的程式碼:

 

五年老程式設計師來傳授你26的Python神技!掌握此技能就掌握高薪!

 

 

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

YAML

YAML代表“YAML Ain’t Markup Language”,它是一種資料格式化語言,是JSON的超集。

與JSON不同,它可以儲存更復雜的物件並引用自己的元素。你也可以寫註釋,使其特別適合於編寫配置檔案。

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

 

五年老程式設計師來傳授你26的Python神技!掌握此技能就掌握高薪!

 

 

然後匯入到專案中:

 

五年老程式設計師來傳授你26的Python神技!掌握此技能就掌握高薪!

 

 

PyYaML允許你儲存任何資料型別的Python物件,以及任何使用者定義類的例項。

zip

對你來說,這是最後一招,真的很酷。曾經需要將兩個列表合成一個字典?

 

五年老程式設計師來傳授你26的Python神技!掌握此技能就掌握高薪!

 

 

zip()內建函式接受多個可重複物件,並返回元組列表。每個元組按位置索引對輸入物件的元素進行分組。

您也可以通過對物件呼叫*zip()來“解壓縮”物件。

感謝閱讀!

到這裡你已經讀完全文,Python的26個小技巧——希望你從中得到了對下一個專案有用的東西。

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

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