條條大路通GitHub。 在本文中,我列舉了GitHub上的一些Python免費(fèi)學(xué)習(xí)資源,其中有包含教程式的Jupyter Notebook,還有一些專門為你解決編程問題。 如果你以前沒有接觸過Python,那么你可以從通過這些資源直接入門。如果你對(duì)Python已經(jīng)很熟悉了,而你想復(fù)習(xí)某個(gè)特定的主題,比如說算法,那么還有專門為你準(zhǔn)備的庫! 資源一:學(xué)習(xí)Python3-從入門到中級(jí)(2.2k星)GitHub:https://github.com/jerry-git/learn-python3 該存儲(chǔ)庫在入門部分就帶我們?yōu)g覽19個(gè)Jupyter Notebooks,涵蓋了諸如字符串和條件之類的基礎(chǔ)級(jí)別,然后通過討論類(對(duì)面向?qū)ο缶幊痰暮?jiǎn)單介紹),異常(什么是異常,如何處理異常)以及Python標(biāo)準(zhǔn)庫(DeaTime,正則表達(dá)式等等)中包含的一些特性來進(jìn)行深入討論。 每個(gè)主題都有一個(gè)“Notebook”鏈接,可為我們介紹該主題和一些示例代碼。完成此操作后,將有一個(gè)“練習(xí)”鏈接,可將我們帶到筆記本電腦上,我們可以填寫示例問題并進(jìn)行測(cè)試。 然后,其中有一個(gè)的“慣用”部分。該節(jié)介紹了“Python功能”,這是Python中許多其他編程語言都沒有的特性。如果你熟悉另一種語言,那么你可能需要查看該部分內(nèi)容,了解專門使用Python的技巧和技巧。例如,有一節(jié)專門介紹了如何用Python不同于其他語言來處理循環(huán)。 該存儲(chǔ)庫還給出了“最佳實(shí)踐”notebook鏈接,我們可以使用該notebook來了解創(chuàng)建Python項(xiàng)目時(shí)應(yīng)做哪些實(shí)踐。它涵蓋了諸如使用 pipenv 設(shè)置虛擬環(huán)境以及使用 pytest 進(jìn)行測(cè)試等等。 資源二:學(xué)習(xí)python-從入門到中級(jí)(4.9k星)GitHub:https://github.com/trekhleb/learn-python 該存儲(chǔ)庫還可以作為Python的介紹,它可以讓你從初學(xué)者過渡到中級(jí)(中級(jí)的意思是,使用除了簡(jiǎn)單的循環(huán)和算術(shù)之外的語言)。該存儲(chǔ)庫不是使用 notebooks,而是 Python 腳本的集合,每個(gè)腳本都是核心類別的子主題,如“操作符”、“數(shù)據(jù)類型”和“控制流”。 每個(gè) Python 文件都演示了所討論的子主題以及一個(gè)有用的鏈接,你可以訪問該鏈接以獲取更多信息。如果你不清楚代碼的作用,并且需要快速回顧一些理論,這些鏈接會(huì)對(duì)你有所幫助。 使用 Python 文件時(shí),存儲(chǔ)庫中包含的兩個(gè)重要功能是測(cè)試和樣式檢查。你可以在“How to Use This Repository”下看到完整的詳細(xì)信息,但是為了進(jìn)行測(cè)試,作者在主函數(shù)的底部包含了帶有 assert 的行,以查看函數(shù)是否正常運(yùn)行。如果你想更改代碼并查看它是否能正常工作,這些鏈接能起到很好的作用。此外,為了養(yǎng)成遵循 Python 的主要樣式指南(pep8)的習(xí)慣,還有進(jìn)一步的說明供您在代碼上運(yùn)行pylint,以查看Python文件是否符合樣式指南。 當(dāng)然,你也不需要完全遵循本課程的全部?jī)?nèi)容,因?yàn)樽髡咧赋觯憧梢詫⒋鎯?chǔ)庫用作備忘單,你可以簡(jiǎn)單地找到自己要查找的部分,查看文檔,玩轉(zhuǎn)代碼,然后運(yùn)行測(cè)試和 lint 代碼,看看它是否可以正常工作和編寫。 資源三:全速python-中級(jí)入門(2.8k星)GitHub:https://github.com/joaoventura/full-speed-python 這個(gè)資料庫的特色:它是一本書。該書快速講解了字符串和列表的基礎(chǔ)知識(shí),然后迅速跳入了相對(duì)更高級(jí)的主題,例如“類”,“協(xié)程”和“異步編程”。 作者在編寫本書時(shí)選擇了實(shí)用的方法,并通過代碼示例簡(jiǎn)要介紹了每個(gè)主題,然后直接跳到練習(xí),讀者可以自己嘗試解決問題。 你可以從自述文件鏈接下載pdf / epub文件,也可以克隆存儲(chǔ)庫并自行構(gòu)建。 作者在文中寫道:“擁有軟件工程學(xué)位的分布式計(jì)算專業(yè)的學(xué)生在兩周內(nèi)就熟悉了Python,并在第三周內(nèi)可以使用套接字實(shí)現(xiàn)分布式客戶端-服務(wù)器應(yīng)用程序”。 如果你已經(jīng)具有另一種語言的軟件工程經(jīng)驗(yàn),或者Python不是你的第一門編程語言,那么使用本書可能會(huì)幫助你快速掌握Python。 資源四:python參考 —中級(jí)(2.4k星)GitHub:https://github.com/rasbt/python_reference 此存儲(chǔ)庫不是像以前的存儲(chǔ)庫那樣包含多組概念的教程式資源。相反,這個(gè)存儲(chǔ)庫更多的是關(guān)于中級(jí)主題的不同 Notebooks 的集合,比如“ Python 中的 SQLite 數(shù)據(jù)庫操作”和“通過多處理模塊進(jìn)行并行處理”。如果你已經(jīng)有了堅(jiān)實(shí)的 Python 基礎(chǔ),這個(gè)資源庫可以幫助你真正利用語言的不同特性。與前面提到的存儲(chǔ)庫一樣,這個(gè)存儲(chǔ)庫也包含了可以編輯和運(yùn)行的代碼的 Notebooks。 這本名為“不太明顯的 Python 素材”的 Notebook 提供了各種 Python 和 Python 模塊特性的簡(jiǎn)要介紹,這些特性可能是你在學(xué)習(xí)絕對(duì)基礎(chǔ)知識(shí)時(shí)沒有學(xué)到的。你永遠(yuǎn)不知道這些隨機(jī)的提示什么時(shí)候就會(huì)為你的以后的工作提供幫助。如果你剛開始使用Python,那么建立理解的深度是非常好的,但是一旦你充分了解了基本知識(shí),這個(gè)存儲(chǔ)庫可以幫助你完成一些無關(guān)的技巧的匯編,比如拓寬和填補(bǔ)你的知識(shí)空白。 此外,該庫還提供了非常有用的非代碼資源。例如,作者創(chuàng)建了一個(gè)名為“ Python 中的單元測(cè)試—為什么我們要讓它成為一種習(xí)慣”。 作者還鏈接了許多其他對(duì)學(xué)習(xí) Python 非常有用的外部資源,包括論壇、書籍和現(xiàn)有的 Python 項(xiàng)目。例如,Reddit上的r/Python是一個(gè)很好的地方,可以找到有用的Python技巧以及社區(qū)成員展示的個(gè)人項(xiàng)目。 資源五:Python編程練習(xí)-從入門到精通(11.2k星)GitHub:https://github.com/zhiwehu/Python-programming-exercises 這個(gè)存儲(chǔ)庫目前有 100 個(gè) Python 編程練習(xí),從入門到高級(jí)難度不等。這些問題和解決方案最初是用 Python2 編寫的,但后來作者用 Python3 編寫的解決方案更新了 100 個(gè)問題。 如果你對(duì)Python已經(jīng)很熟悉,那么有些問題會(huì)很簡(jiǎn)單。 如果你陷入困境,那么可以根據(jù)“提示”內(nèi)容,來解決問題。找出問題解決方案的過程有助于你真正記住解決方案。 由不同的作者針對(duì)相同的問題和替代解決方案,該存儲(chǔ)庫還有一個(gè)“擴(kuò)展版本”。 在這個(gè)擴(kuò)展的存儲(chǔ)庫中,作者試圖展示解決問題的不同方法,這可能比原始解決方案更有效或“ Pythonic”。 資源六:編程問題—從中級(jí)到高級(jí)(2.6k星)GitHub:https://github.com/MTrajK/coding-problems 與前面的存儲(chǔ)庫一樣,該庫包含了一個(gè)可以解決的編程和算法練習(xí)的列表。然而,這個(gè)存儲(chǔ)庫并沒有把所有的練習(xí)都放在 Notebook 上,而是為每個(gè)練習(xí)準(zhǔn)備了一個(gè) Python 文件,其中包含了問題的描述,以及解決問題的方法。 這些問題不是給一個(gè)完全0基礎(chǔ)的初學(xué)者學(xué)習(xí)的,所以我建議你已經(jīng)掌握了基本知識(shí)(使用函數(shù)、控制流等)之后再開始。 作者還寫道“算法和結(jié)構(gòu),而不是特定語言”。正因?yàn)槿绱耍肞ython編寫了解決方案,因?yàn)镻ython語言的可讀性,熟悉其他語言的人也可以用這個(gè)存儲(chǔ)庫來了解如何處理算法問題。 該存儲(chǔ)庫中的問題并不是作者最初編寫的,因?yàn)樗鞔_指出,這些問題來自LeetCode等網(wǎng)站。他的貢獻(xiàn)是提供解決方案和解釋,幫助人們學(xué)習(xí)如何解決這些類型的問題。 你會(huì)發(fā)現(xiàn)許多問題可以歸為一個(gè)主題,所以解決這些問題的方法可能有些相似。當(dāng)你在一個(gè)主題中不斷練習(xí)相同類型的問題時(shí),你會(huì)發(fā)現(xiàn)這些問題也不過如此。 除了包含算法問題和解決方案的Python文件外,還包括一個(gè)供我們使用的其他資源的綜合列表。包括許多在線課程,推薦書籍,以及針對(duì)編程問題的熱門網(wǎng)站的鏈接。 資源七:算法-從中級(jí)到高級(jí)(83.4k星)GitHub:https://github.com/TheAlgorithms 該存儲(chǔ)庫提供了一組文件,這些文件可以展示如何在Python中實(shí)現(xiàn)不同的算法。這些算法分為從“算術(shù)分析”到“區(qū)塊鏈”再到“數(shù)據(jù)結(jié)構(gòu)”甚至更多的類別。但是,對(duì)于如何解決一個(gè)問題,并沒有太多的解釋,因?yàn)檫@個(gè)存儲(chǔ)庫可以作為實(shí)現(xiàn)不同算法的解決方案指南。 有些文件還會(huì)為我們提供了上下文信息(以及一個(gè)或兩個(gè)鏈接方便我們?nèi)腴T),在嘗試解決這些算法之前,自己必須要做一些研究。 如果你還是Python新手,我建議你還是先掌握基礎(chǔ)知識(shí),因?yàn)樵摯鎯?chǔ)庫確實(shí)適合那些已經(jīng)熟悉該語言并希望加深自身對(duì)算法知識(shí)理解的人。 作者還為其他幾種主要語言(Java,C ++,C,Go,Javascript)創(chuàng)建了類似的“學(xué)習(xí)算法”存儲(chǔ)庫,你可以在配置文件的固定存儲(chǔ)庫中進(jìn)行查看學(xué)習(xí)。 總結(jié)GitHub存儲(chǔ)庫里包含了大量有價(jià)值的學(xué)習(xí)資源,但這并不是讓你要學(xué)習(xí)掌握所有這些資源。建議首先從“初學(xué)者到中級(jí)”類型的存儲(chǔ)庫中選擇一個(gè),然后通讀其中的所有學(xué)習(xí)材料。你應(yīng)該選擇最適合自己學(xué)習(xí)風(fēng)格的存儲(chǔ)庫。例如,如果你想通過可編輯的Jupyter Notebook 學(xué)習(xí)從入門到中級(jí),那么可以使用本文中介紹的第一個(gè)存儲(chǔ)庫。 另外,兩個(gè)100+的 Python 問題非常適合作為解決編程問題的入門。你可以每天嘗試解決一些問題或者等到你的 Python 有了更堅(jiān)實(shí)的基礎(chǔ)之后再開始。這些最后都會(huì)幫助你掌握基礎(chǔ)知識(shí)、編程問題的類型,這些知識(shí)甚至可能會(huì)出現(xiàn)在你的技術(shù)工作面試中。 如果你還在花冤枉錢學(xué)習(xí)Python,那不妨多看看這些免費(fèi)的學(xué)習(xí)資料,保證能夠讓你的Python水平從入門到精通! |
|