Python從入門到轉行

題記:大二的時候發現人生苦短,因此信了拍神,開始學Python。學了大半年以後成功轉行作前端了。來寫個教程幫助你們入門Python。html

Python零基礎入門

零基礎入門就得從最基本的變量,語法格式,數據類型,函數,做用域,模塊等基本知識入手(有編程基礎基礎也得這麼來)

和籃球同樣,先來三步上籃:前端

  1. Python基礎知識入門,從程序基礎開始學,能看懂代碼就能夠了。三種選擇:
    第一種:找一本Python入門教程書,好比《Head First Python 中文版 》《笨辦法學Python 》《簡明 Python 教程》。Head First系列書籍都很是簡單易懂,適合文科生看,從最基本的東西講起,有編程基礎的同窗看着會以爲幼稚。另外兩本都是普通入門書,隨便選。一些Python相關電子書下載, 密碼: yjw3。
    第二種:看網站入門教程,不少人推薦的廖雪峯Python教程
    第三種:視頻教程,推薦慕課網。其餘還有網易雲課堂,學堂在線(這個裏邊大學課程比較多)
  2. 學寫一些基本的Python程序,上述《簡明 Python 教程》後邊的示例能夠作。想更進一步掌握基礎,能夠作一點leetcode easy題目練練手。(看我的狀況唄,反正我是沒那個耐心,作題實在太枯燥,雖然寫題是頗有好處的)
  3. 作一些感興趣的小項目,這裏有Python習題100例,很基礎。以爲不夠高大上能夠玩實驗樓裏的項目,實驗樓是個不錯的網站,能夠作一些很好玩的東西。

以上三步可讓你21天精通Python喲python

Tips:推薦一個神器,Python運行可視化,能夠一步步查看程序運行狀態,變量狀態,函數調用,內存分配,對於理解變量生命週期,做用域,調試理解程序很是有幫助。
開發工具:推薦Pycharm,有免費社區版,也可用edu郵箱註冊專業版。git

Python進階篇

進階就是專一於Python的某個領域作深刻研究了,Python主要包含了AI領域(NLP,深度學習,圖像處理啥的,反正無所不能),Web開發(後端服務,爬蟲),數據處理(數據分析,科學計算),工具(好比讀寫Excel,編寫自動化腳本),桌面開發(GUI工具)等等。
Python好強大啊,我又想寫Python了。github

下面簡單寫寫我知道的領域的入門:正則表達式

Web開發

Python Web框架衆多,是建網站的利器。對於創建不太複雜的CMS系統(好比新聞網站,博客網站),Django強到沒朋友,開發效率無敵。對於注重靈活性的網站,Flask能夠做爲首選,靈活而小巧,很是優雅的框架。算法

  1. Django入門先看官方文檔,瞭解基本概念。而後開始作實際項目,好比Django開發博客系統教程
  2. Flask入門看官方文檔,同Django。

爬蟲(網絡數據獲取)

先科普,網絡爬蟲,能夠理解爲在網絡上爬行的一直蜘蛛,互聯網就比做一張大網,而爬蟲即是在這張網上爬來爬去的蜘蛛,若是它遇到資源,那麼它就會抓取下來。好比它在抓取一個網頁,在這個網中他發現了一條道路,其實就是指向網頁的超連接,那麼它就能夠爬到另外一張網上來獲取數據。簡單地說,利用程序從網頁上獲取你想要的數據。
Python的爬蟲框架很是多,也很是好用。
入門步驟:數據庫

  1. 理解網頁是怎麼構成的
    網頁的基本知識包括:
    基本的HTML語言知識
    理解網站的發包和收包的概念(POST GET)
    稍微一點點的js知識,用於理解動態網頁
  2. 解析網頁,這裏須要學習正則表達式
  3. 選取一個爬蟲框架,好比自帶的urllib,request,bs4等等
  4. 看官方文檔,如何使用框架,而後就能夠養一隻爬蟲咯。

教程點這裏編程

數據處理

上邊爬蟲講到如何獲取數據,這裏將學習如何分析處理數據,教程連接
科學計算,數據處理用到比較多的是matlab,無所不能的Python固然也能夠替代它。
numpy pandas是科學運算當中最爲重要的兩個模塊。Matplotlib 是一個很是強大的 Python 數據可視化工具,繪製各類圖形。後端

  1. 看官網文檔,理解這個庫的基本用法。
  2. 學習一些簡單的項目,上文提到的實驗樓也能夠用

AI領域


從別處引用一點基本介紹

  1. Theano 是一種用於使用數列來定義和評估數學表達的 Python 庫。它可讓 Python 中深度學習算法的編寫更爲簡單。
  2. Keras 是相似 Torch 的一個精簡的,高度模塊化的神經網絡庫。Theano 在底層幫助其優化 CPU 和 GPU 運行中的張量操做。
  3. Pylearn2 是一個引用大量如隨機梯度(Stochastic Gradient)這樣的模型和訓練算法的庫。它在深度學習中被普遍採用,這個庫也是以 Theano 爲基礎的。
  4. Lasagne 是一個輕量級的庫,它能夠在 Theano 中創建和訓練神經網絡。它簡單、透明、模塊化、實用、專注而剋制。
  5. Blocks 是一種幫助你在 Theano 之上創建神經網絡模型的框架。
  6. Caffe 是一種以表達清晰、高速和模塊化爲理念創建起來的深度學習框架。它是由伯克利視覺和學習中心(BVLC)和網上社區貢獻者共同開發的。谷歌的 DeepDream 人工智能圖像處理程序正是創建在 Caffe 框架之上。這個框架是一個 BSD 許可的帶有 Python 接口的 C++庫。
  7. nolearn 包含大量其餘神經網絡庫中的包裝器和抽象(wrappers and abstractions),其中最值得注意的是 Lasagne,其中也包含一些機器學習的實用模塊。
  8. Genism 是一個部署在 Python 編程語言中的深度學習工具包,用於經過高效的算法處理大型文本集。
  9. CXXNET 是一種快速,簡明的分佈式深度學習框架,它以 MShadow 爲基礎。它是輕量級可擴展的 C++/CUDA 神經網絡工具包,同時擁有友好的 Python/Matlab 界面,可供機器學習的訓練和預測使用。

這裏包含的東西太多了,基本學習方法如上。

給一個比較全的Python視頻課程

連接:https://pan.baidu.com/s/1htRyqtY 密碼:nc1f

附錄:

先來看看Python有多強大,否則不能被它所吸引,就學不下去了。
20行代碼實現人臉檢測與識別:
face_recognition能夠經過python或者命令行便可實現人臉識別的功能。使用dlib深度學習人臉識別技術構建,在戶外臉部檢測數據庫基準(Labeled Faces in the Wild)上的準確率爲99.38%。

# 導入識別庫
import face_recognition
# 加載已有的圖片做爲圖像庫
known_obama_image = face_recognition.load_image_file("face1.jpg")
known_biden_image = face_recognition.load_image_file("face_kid.jpg")
# 編碼加載的圖片
obama_face_encoding = face_recognition.face_encodings(known_obama_image)[0]
biden_face_encoding = face_recognition.face_encodings(known_biden_image)[0]
known_encodings = [
    obama_face_encoding,
    biden_face_encoding
]
# 加載要識別的圖片並編碼
image_to_test = face_recognition.load_image_file("face2.jpg")
image_to_test_encoding = face_recognition.face_encodings(image_to_test)[0]
# 計算該圖片與已有圖片的差異值
face_distances = face_recognition.face_distance(known_encodings, image_to_test_encoding)
# 自行設定同一張面孔的分界值,輸出比對結果 
for i, face_distance in enumerate(face_distances):
    print("The test image has a distance of {:.2} from known image #{}".format(face_distance, i))
    print("- With a normal cutoff of 0.6, would the test image match the known image? {}".format(face_distance < 0.6))
    print("- With a very strict cutoff of 0.5, would the test image match the known image? {}".format(face_distance < 0.5))
    print()
相關文章
相關標籤/搜索