網上閱讀《Python 算法與數據結構教程 》python
github 連接git
數據結構和算法是每一個程序員須要掌握的基礎知識之一,也是面試中跨不過的檻。目前關於 Python 算法和數據結構的中文資料比較欠缺,
筆者嘗試錄製視頻教程幫助 Python 初學者掌握經常使用算法和數據結構,提高開發技能。
本教程是付費教程(文字內容和代碼免費),由於筆者錄製的過程當中除了購買軟件、手寫板等硬件以外,業餘須要花費不少時間和精力來錄製視頻、查資料、編寫課件和代碼,養家餬口不容易,但願你們體諒。github
目前就任於知乎,從實習期間接觸 Python 起一直從事 Python 網站後端開發,有必定 Python 的使用和實踐經驗。web
知乎專欄:面試
電子書:《Python web 入坑指南》算法
包括咱們在業務開發和麪試中經常使用的算法和數據結構,但願能夠幫助新人快速上手,不少老手寫業務代碼寫多了不少基礎知識忘記了,
也能夠做爲回顧。課程儘可能用通俗的方式講解,結合 python 語言和平常開發實踐的經驗,讓沒有太多基礎和非科班的同窗也可以理解。
對於每一個算法和用到的數據結構咱們須要知道:編程
這裏講解的章節我參考了下邊教材中列舉的一些書籍,而且本身設計了大綱,爭取作到按部就班。由於實現一些高級數據結構的時候會用到
不少底層數據結構,防止跳躍太大致使讀者理解困難。vim
課程的目錄結構以下,每一章都有配套的文字講義(markdown),示例代碼,視頻講解,詳細的講解通常會放在視頻裏,使用手寫板來
進行板書,包括文字、圖示、手動模擬算法過程等。
目前相關章節和視頻還在製做,將於近期完成。
咱們這裏使用最近很火的Python。Python 入門簡單並且是個多面手,在爬蟲、web 後端、運維、數據分析、AI 、量化投資等領域都有 Python 的身影。
知乎、豆瓣、頭條、餓了麼、搜狐,國外的 Instagram/Reddit/Pinterest/Youtube 等網站都有普遍使用 Python。筆者平常工做使用也是 Python,有必定實踐經驗,
在知乎上維護了一個專欄《Python 學習之路》。
Python 抽象程度比較高, 咱們能用更少的代碼來實現功能,同時不用像 C/C++ 那樣擔憂內存管理、指針操做等底層問題,
把主要心思放在算法邏輯自己而不是語言細節上,Python 也號稱僞代碼語言。全部代碼示例使用 Python2/3 兼容代碼,
不過只在 python3.5 下測試過,推薦用相同版本 Python。
想要學習 Python 算法和數據結構的初、中級同窗,包括自學的同窗和本科低年級學生等。須要掌握 Python
的基本語法和麪向對象編程的一些概念,咱們這裏只使用最基本的 Python 語法,不會再去介紹用到的 Python 語法糖。
__len__
__contains__
這裏我參考過三本書:
《算法圖解》: 圖解的形式很適合新手,示例使用的是 python
《Data Structures and Algorithms in Python》: 適合對 Python
和算法比較熟悉的同窗,或者是有其餘語言編程經驗的同窗。英文版,缺點是書中錯誤真的不少,代碼有些沒法運行,甚至不夠 Pythonic
《算法導論》: 喜歡數學證實和板磚書的同窗能夠參考,有不少高級主題。使用僞代碼
繪圖演示+手寫板+現場編碼
我將使用繪圖軟件+手寫板進行相似於紙筆形式的講解,邊講邊開個終端分紅兩個窗口,一個用 vim
編寫代碼,另外一個窗口用來運行代碼,全部代碼我將會現場編寫(仍是頗有挑戰的),不會像某些大學教師同樣只喜歡念 ppt。
每一個視頻我會盡可能控制時長,講的內容儘可能通俗易懂,擺脫學院派的授課方式。我相信理論+實踐+手動模擬是一種比較好的學習方式。
你能夠參考我在知乎發的專欄文章看下:
注意每一章目錄裏都有 py 文件,在電子書裏看不到。clone 下代碼找到對應目錄裏的 python 文件便是每章涉及到的代碼。沒有任何版權限制,你能夠隨意修改、練習、調試和使用。我從開源社區學到了不少,但願能作點小小的貢獻吸引更多優秀的人加入 Python 社區吧。
筆者講課錄製視頻的過程也是本身再整理和學習的過程,錄製視頻以前須要參考不少資料
但願對所講到的內容,你可以
掌握基本的算法和數據結構原理,能獨立使用 Python 語言實現,能在平常開發中靈活選用數據結構。
對於找工做的同窗提高面試成功率。
推薦使用如下工具進行開發,若是使用編輯器最好裝對 應 Python 插件,不推薦新手摺騰編輯器,除非你有這個愛好😂:
輸出其實也是一種再學習的過程,中途須要查看大量資料、編寫講義、視頻錄製、代碼編寫等,不免有疏漏之處。
有出版社找過筆者想讓我出書,一來本身對出書興趣不大,另外感受書籍相對視頻不夠直觀,有錯誤也不能及時修改,打算直接把全部
文字內容講義放到 github 上,供你們免費查閱。
若是你以爲文字內容或者視頻內容有錯誤,歡迎在 github 上提 issue 討論,我會修正相關內容,防止產生誤導。
使用 mkdocs 和 markdown 構建,使用 Python-Markdown-Math 完成數學公式
安裝依賴:
pip install mkdocs # 製做電子書
# https://stackoverflow.com/questions/27882261/mkdocs-and-mathjax/31874157
pip install https://github.com/mitya57/python-markdown-math/archive/master.zip
複製代碼
編寫並查看:
mkdocs serve # 修改自動更新,http://localhost:8000 訪問
# 數學公式參考 https://www.zybuluo.com/codeep/note/163962
複製代碼
若是你 fork 了本項目,能夠按期 pull 下主倉庫代碼,獲取最新的章節。