適合Python的5大練手項目, 你練了麼?

在練手項目的選擇上,還存在疑問?不知道要從哪一種項目先下手?node

首先有兩點建議:算法

  • 最好不要寫太應用的程序練手,要思考什麼更像是知識,老只會寫寫爬蟲是無用的,可是徹底不寫也不行。shell

  • 對於練手的程序,要注意簡化和抽象,可是若是簡化不得當的話,很容易看幾篇教程就被懶得下手了。框架

接下來就給你們介紹幾種適合新手的練手項目。ssh

0.算法系列-排序與查找分佈式

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

1.編譯系列操作系統

這個系列的重點就是前面說到的簡化,可是不要期望一口氣寫一個完整的C編譯器,即便只針對C一個很小的子集。因此咱們須要一步一步來,寫一個計算器的解釋器是很好的開始,再進一步能夠寫一個極簡語言的解釋器,譬如brainfuck。視頻

再進一步你能夠擴展已有的計算器解釋器,譬如加入聲明、賦值與運算、循環、流程控制, 構成一個簡單的LL(1)語法,而後遞歸降低分析,這就能夠搞一個簡易同時又圖靈完備的玩具語言出來了。blog

2.分佈式系統/計網系列

這系列的項目,第一步能夠從寫一個簡單的HTTP客戶端開始,緣由很簡單,由於HTTP大概是最簡單的應用層協議了。而後能夠考慮實現一個基本的ssh,你大概天天都會用ssh,難道不想作一個本身的簡易版本嗎?

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

3.操做系統系列

操做系統系列,能夠嘗試寫一個簡單的存儲管理的文件系統。第一步的簡化就是用一個大的空文件做爲磁盤,把對磁盤的讀寫抽象成對這個文件的讀寫。基本就是實現下inode,而後包裝成一個shell,支持下最基本的命令,新建、追加、讀寫、刪除之類的操做。這個練習最有趣也最有意義的地方在於多級索引的實現,

4.周邊系列

你也能夠試試Jython,IronPython之類的,看看和CPython好比何。而後再試試Pypy,必然是一開始很高興,最後發現各類常見庫不支持,最後仍是轉回CPython。

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

更多Python視頻、源碼、資料加羣683380553免費獲取

原文連接:https://www.toutiao.com/a6553161951508169223/