隨著人工智慧的興起,國內掀起了一股Python學習熱潮,入門級程式語言,大多選擇Python,有經驗的程式設計師,也開始學習Python,正所謂是人生苦短,我用Python
有個Python入門練手專案,一直沒有和大家推薦過,這個開源專案還是一本書,這本書最大的特點在於每個章節都是由一位該領域的開源大牛編寫的,每章包含一個程式實現,這些程式的程式碼都在500行以內,故而這本書叫——《500 Lines or Less》
本人對於Python學習建立了一個小小的學習圈子,為各位提供了一個平臺,大家一起來討論學習Python。歡迎各位到來Python學習群:960410445一起討論視訊分享學習。Python是未來的發展方向,正在挑戰我們的分析能力及對世界的認知方式,因此,我們與時俱進,迎接變化,並不斷的成長,掌握Python核心技術,才是掌握真正的價值所在。
這本書在 GitHub 上的名稱為 500lines,目前已經獲得 20344 個 Star,4697 個Fork
雖說本書是關於Python入門,但實際上並非所有程式碼都是用Python編寫的,裡面也有一些專案採用Ruby、C、JavaScript等編寫,實際上這本書的重點不在於程式語言,更側重於程式設計師在編寫程式碼時所作出的設計決策和權衡:
為什麼使用這些特定介面將應用程式劃分為特定的模組?
為什麼這裡使用繼承,那裡使用封裝?
如何預測程式可能需要擴充套件的地方,以及如何讓程式設計師輕鬆實現
書中一共有22個專案,下面介紹一下,這本書都有哪些專案:
1、Blockcode: A visual programming toolkit(視覺化程式設計)
該專案主要通過龜圖(turtle graphics)實現塊語言,通過簡單拖放建立圖案,整個過程通過常用的Html、CSS和JavaScript來實現(每一個塊由html元素組成,CSS用於設定樣式,JavaScript時間處理器進行拖拽並修改引數)。屬於圖片程式設計的一種
2、A Continuous Integration System(持續整合系統)
持續整合(CI)系統是Python編寫的用於測試新程式碼的專用系統。該專案使用Git作為測試程式碼的儲存庫。但它只使用標準的原始碼管理呼叫,如果你不熟悉Git但熟悉其他版本控制系統(VCS),如svn或Mercurial,也是可以正常使用。該系統有三大主要功能:獲取更改後程式碼、自動測試程式碼、生成測試報告
3、Clustering by Consensus(分散式系統)
分散式系統 paxos原理與實現,並採用一些技巧幫助你儘可能的減少和查詢、修復漏洞以及特別的開發除錯技巧。
4、Contingent: A Fully Dynamic Build System(文件系統)
使用python構建一個文件系統
5、A Web Crawler With asyncio Coroutines(爬蟲)
幾百行程式碼實現一個簡單的Web爬蟲程式
6、Dagoba: an in-memory graph database(圖形資料庫)
這個專案主要講述如何通過JavaScript構建一個圖形資料庫
7、DBDB: Dog Bed Database(key-value的非關係型資料庫)
DBDB(Dog Bed Database)是一個Python庫,它實現了一個簡單的key-value的非關係型資料庫,旨在保護計算機出現崩潰或者報錯時的資料。
8、A Flow Shop Scheduler
Flow Shop 排程問題,通過Python的一些功能特性,用少量的程式碼,從區域性最優解找全域性最優解
9、Making Your Own Image Filters
通過Processing(一種用Java構建的程式語言和開發環境)建立一個影象過濾器
10、A Python Interpreter Written in Python(Python直譯器)
Byterun是一個用Python實現的Python直譯器,這個專案主要是幫助你搞清楚這個直譯器的結構
11、A 3D Modeller
用 Python 實現一個3D設計,顯示到螢幕,可以互動。
12、a-simple-object-model(物件模型)
本章探討了一系列非常簡單的物件模型的實現。碼適用於Python 2.7和3.4,為了更好理解,還介紹了物件模型測試。
13、Optical Character Recognition (OCR)
AI的一個眾所周知的應用是光學字元識別(OCR)。OCR系統是一種軟體,該專案將使用神經網路(ANN)搭建一個OCR系統
14、A Pedometer in the Real World(計步器)
教你如何使用Ruby建立一個基本的計步器,並在程式碼中新增一個Web層,為使用者提供一個友好UI介面
15、The Same-Origin Policy(SOP)
SOP是每個現代瀏覽器安全機制的重要組成部分。該專案使用Alloy(一種用於建模和分析軟體設計的語言),構建一個SOP模型
16、A Rejection Sampler(決策取樣器)
該專案將對取樣、多項分佈、隨機分佈等名詞,通過Python程式設計方式來實現。
17、Web Spreadsheet(Web 電子表格)
該專案僅僅用了99行 HTML、CSS 和 JS 程式碼就寫出一個Web 的電子表格
18、Static Analysis(靜態分析)
通過Julia程式碼編寫靜態分析工具,一種基於型別的靜態分析工具,一種是基於變數的靜態分析工具。
19、A Template Engine(模板引擎)
任何Web應用程式中的一個重要階段是生成要提供給瀏覽器的HTML。本專案通過Python構建一個簡單的模板引擎,解析 html 中的靜態變數和簡單的語句
20、A Simple Web Server(Web伺服器)
利用Python搭建一個簡單的 Web 伺服器
21、An Event-Driven Web Framework
在Common Lisp中構建一個Web框架,解決遊戲中互動的問題
22、An Archaeology-Inspired Database
488行Clojure原始碼構建資料庫,其中73行是空白行,55行是文件字串。