GitHub 上適合新手的開源項目(Python 篇)
隨著 Python 語言的流行,越來越多的人加入到了 Python 的大家庭中。為什么這么多人學(xué) Python ?我要喊出那句話了:“人生苦短,我用 Python!”,正是因為語法簡單、容易學(xué)習(xí),所以 Python 深受大家喜愛。(Python!Python!Python?。?/p>
Python 初學(xué)者在邁過安裝編程環(huán)境和基本語法的門檻 ,準(zhǔn)備大展身手的時候,可能突然就會進(jìn)入迷茫期:不知道做些什么、再學(xué)些什么。然后對編程的興趣就會慢慢消退,找不到堅持下去的理由,從而慢慢淡忘之前學(xué)會的編程知識。所以找到自己感興趣、能夠跟著動手和學(xué)習(xí)的 Python 項目是特別重要的,這樣才能把學(xué)會的 Python 知識用起來,不斷地提高。最終從新手晉升為高手!
興趣是最好的老師,HelloGitHub 就是幫你找到編程的樂趣。
這里是 HelloGitHub 的《GitHub 上適合新手的開源項目》系列,共計 5 篇文章:
- C++ 篇
- Python 篇
- Go 篇
- Java 篇
- JavaScript 篇
本期是 Python 篇 ,下面我將從 HG 推薦過的 197 個 Python 開源項目中,精心篩選出 7 個 最適合 Python 新手學(xué)習(xí)和把玩的開源項目。這些項目包括:
- 從零開始學(xué)也不用愁的 Python 教程
- 讓你驚呼 Python 還可以這樣用的秘籍(大開眼界)
- 輕輕松松就能跑起來(滿滿成就感)
- 好玩有趣又能學(xué)到東西的項目(編程的樂趣)
我會盡力做到涵蓋每一個剛?cè)腴T階段在找開源項目的小伙伴。聲明:
- 不糾結(jié)項目是 Python2 還是 3
- 我最怕推薦的項目過多讓讀者“挑花眼”導(dǎo)致都沒學(xué)好,所以就選了 7 個項目
- 歡迎吐槽和反饋,不定期更新。所以本文暫且稱之為 Python 篇 1.0 :joy:
注意:為了方便大家學(xué)習(xí),我把這些項目整理好放到網(wǎng)盤上供大家下載學(xué)習(xí)(地址在最下面),另外大家也可以直接 clone
項目。
但不管以哪種方式下載,我都希望大家可以去給這些 GitHub 上的開源項目點一個 star :sparkles:,讓作者感受到大家的支持和喜愛。我在這里提前替作者感謝大家了,愛你們呦~:heart:
:car: 發(fā)動引擎~
一、教練,我想學(xué) Python
車上有座,坐滿就發(fā)車。
1.1 有編程基礎(chǔ):explore-python
- 項目地址: https://github.com/ethan-funny/explore-python
- 在線閱讀: https://funhacks.gitbooks.io/explore-python/content/
《Python 之旅》這本開源書雖然是入門級但并不是“保姆級”,如果你覺得手把手教你安裝 Python 之類是浪費時間,那么我推薦 explore-python 這個項目。所以,如果之前學(xué)過其它編程語言,自己能解決安裝環(huán)境等問題。那你可能就會和我一樣喜歡它:
- 大綱:直觀的腦圖展示,結(jié)構(gòu)清晰完整,講的都是重點和常用知識
- 內(nèi)容:代碼多于文字,運行示例代碼幫助領(lǐng)悟+簡短文字點撥,可能代碼寫的久了,看代碼感覺比文字舒服
- 排版:舒服+講究,寫給程序員的 Python 書籍
1.2 沒有編程基礎(chǔ):Python-100-Days
- 項目地址: https://github.com/jackfrued/Python-100-Days
Python-100-Days 就是我上面說的“保姆級”教程,他的內(nèi)容面面俱到包括了 Python 開發(fā)的方方面面,手把手地一步步的講 Python 技術(shù)。面向沒有編程基礎(chǔ)想學(xué) Python 的人群,但它不是只教會你 Python 基本語法就結(jié)束了。還有吶:Python 進(jìn)階知識、Linux 基礎(chǔ)知識、數(shù)據(jù)庫知識、Web 基礎(chǔ)和框架、爬蟲和數(shù)據(jù)分析、機器學(xué)習(xí)等?!墩?middot;一個項目學(xué)會 Python》:joy:
說無妨:Python 入門的教程都很簡單,但是有毅力能堅持讀完和有耐心動手敲完每一個例子人不簡單。
二、大神,我想學(xué)好 Python
車速太快,請坐穩(wěn)扶好。
2.1 先查收這份指南:python-guide
- 項目地址: https://github.com/realpython/python-guide
- 在線閱讀: https://pythonguidecn.readthedocs.io/zh/latest/
首先感謝 譯者們 的辛勤付出,降低了《Python 最佳實踐指南》這份指南的閱讀門檻。如果你想把 Python 玩好,但又不知道該從哪些方面著手提高,那這份指南一定可以幫你解決困惑。該指南介紹了以下幾個方面:開發(fā)環(huán)境、常用工具、代碼風(fēng)格、項目結(jié)構(gòu)、使用場景等,提高 Python 相關(guān)的綜合素養(yǎng):用的優(yōu)雅,玩的溜。這個項目不管是作者、貢獻(xiàn)者還是譯者們,都是 Python 社區(qū)的“老司機”,老司機帶你飛的機會來了!
2.2 再翻爛這本秘籍:python3-cookbook
- 項目地址: https://github.com/yidao620c/python3-cookbook
- 在線閱讀: https://python3-cookbook.readthedocs.io/zh_CN/latest/
如果說每一個 Python 問題或需求就是一次進(jìn)攻的話,那《Python Cookbook》就是破解進(jìn)攻招式的武功秘籍。當(dāng)你對用 Python 處理一個問題沒有思路或者感覺可能會有更好的方法和寫法時,翻翻這本書吧。不信你就試試躺著隨便翻一頁看,看著看著你就能坐起來,并且嘴里念叨著:“xxx,還能這么寫?我得去試試”。別笑,真事兒我干過好幾次了。
** 說無妨: ** 不是買兩本書、看幾個開源項目簡介就可以進(jìn)階,只有日積月累才可以從量變到質(zhì)變,完成進(jìn)階。這個過程沒有辦法手把手地教,因為沒人可以一直給你講以后你會遇到的所有問題。所以,你只能抓住每一個可以提高機會和知識點,像救命稻草一樣拼命的抓緊,把知識點掰開揉碎的融會貫通。
三、老師,我想和你一起玩 Python
這車真帥,我也想坐上去試試。
3.1 玩一個不過癮:free-python-games
- 項目地址: https://github.com/grantjenks/free-python-games
真·入門級 Python 游戲集合庫。都是些簡單的小游戲,比如:貪吃蛇、迷宮、Pong、猜字等,運行簡單(有些不需要安裝依賴)、代碼少且易讀。用游戲開啟的你 Python 項目之旅,玩完再學(xué)源碼,其樂無窮啊。源碼都在 freegames
目錄下,每一個 py
文件就是一個游戲,比如 guess.py
就是猜字游戲的源碼。安裝運行的命令如下:
- pip install freegames
- python -m freegames.maze # freegames.游戲名
3.2 Windows 下的按鍵精靈工具:KeymouseGo
- 項目地址: https://github.com/taojy123/KeymouseGo
Python 實現(xiàn)的精簡綠色版按鍵精靈。記錄用戶的鼠標(biāo)、鍵盤操作,自動執(zhí)行之前記錄的操作,可設(shè)定執(zhí)行的次數(shù)。在進(jìn)行某些簡單、單調(diào)、重復(fù)的操作時,使用該軟件可以十分省事兒。只需要錄制一遍,剩下的交給 KeymouseGo 來做就可以了。
3.3 Linux 下優(yōu)雅的 HTTP 請求工具:httpstat
- 項目地址: https://github.com/reorx/httpstat
一個更加漂亮展示 HTTP 請求狀態(tài)和耗時的 Python 命令行工具。它美化了 curl
的結(jié)果,使得結(jié)果更加可讀和直觀,還可以顯示 HTTP 請求的每個過程的耗時。最主要它無依賴、兼容 Python3、就一個文件才 300 多行代碼,非常適合新手閱讀源碼。效果如下圖:
上面這些開源項目很有趣,而且運行簡單,不會讓你卡在運行代碼這一步。最后分享下我運行 Python 開源項目的 三板斧 招式:
- 安裝依賴:
pip install -r requirements.txt
- 啟動文件:通常為
main
、run
、項目名的同名文件
的py
文件 - 運行出錯:拿著異常信息去項目 issues 區(qū)搜,沒有找到就去問搜索引擎
說無妨:把項目運行起來不是終極目的,要閱讀源碼然后按照自己的想法修改代碼最后增加或修改功能(提 PR),這才能算是玩好了。
四、最后
看完這篇文章,如果只記住有哪些適合新手學(xué)習(xí)的開源項目,那不會讓你有任何技術(shù)上的提升,就算看十遍也不會提高。只有去看、去用、去學(xué)文中推薦的項目,才會提高技術(shù)。