1. 程式人生 > >小白:適合Python 新手的5大練手專案, 你練了麼?

小白:適合Python 新手的5大練手專案, 你練了麼?

已經學習了一段時間的Python,如果你看過之前柯西的文章,就知道是時候該進去【專案】階段了。

但是在練手專案的選擇上,還存在疑問?不知道要從哪種專案先下手?

柯西首先有兩點建議:

  • 最好不要寫太應用的程式練手,要思考什麼更像是知識,老只會寫寫爬蟲是無用的,但是完全不寫也不行。

  • 對於練手的程式,要注意簡化和抽象,但是如果簡化不得當的話,很容易看幾篇教程就被懶得下手了。

接下來就給大家介紹幾種適合新手的練手專案。

1.算法系列-排序與查詢

Python寫swap很方便,就一句話(a, b = b, a),於是寫基於比較的排序能短小精悍。剛上手一門新語言練演算法最合適不過了,還能順便刷題,利於找工作。簡單的練習,讓你受益無窮。

2.編譯系列

這個系列的重點就是前面說到的簡化,但是不要指望一口氣寫一個完整的C編譯器,即使只針對C一個很小的子集。所以我們需要一步一步來,寫一個計算器的直譯器是很好的開始,再進一步可以寫一個極簡語言的直譯器,譬如brainfuck。

再進一步你可以擴充套件已有的計算器直譯器,譬如加入宣告、賦值與運算、迴圈、流程控制, 構成一個簡單的LL(1)語法,然後遞迴下降分析,這就可以搞一個簡易同時又圖靈完備的玩具語言出來了。

3.分散式系統/計網系列

這系列的專案,第一步可以從寫一個簡單的HTTP客戶端開始,原因很簡單,因為HTTP大概是最簡單的應用層協議了。然後可以考慮實現一個基本的ssh,你大概每天都會用ssh,難道不想做一個自己的簡易版本嗎?

然後可以考慮分散式系統課上的經典作業,譬如寫一個簡單的RPC。可以參考Java的RPC原理以及Google的RPC框架(有Python版)。

4.作業系統系列

作業系統系列,可以嘗試寫一個簡單的儲存管理的檔案系統。第一步的簡化就是用一個大的空檔案作為磁碟,把對磁碟的讀寫抽象成對這個檔案的讀寫。基本就是實現下inode,然後包裝成一個shell,支援下最基本的命令,新建、追加、讀寫、刪除之類的操作。這個練習最有趣也最有意義的地方在於多級索引的實現,

5.周邊系列

你也可以試試Jython,IronPython之類的,看看和CPython比如何。然後再試試Pypy,必然是一開始很高興,最後發現各種常見庫不支援,最後還是轉回CPython。

做實驗的話用IPython把Python函式當命令跑很方便。

想要學習Python的小白還有進階人士可以關注微信公眾號:Python從程式猿到程式設計師

裡面有更多的乾貨,想要下期專案實戰篇的可以點點關注,下期我會逐一更新小白專案

歡迎關注微信公眾號