Python從入門到轉行

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

Python零基礎入門

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

和籃球一樣,先來三步上籃:

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

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

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

年底活動,送大家價值1888元的Python學習資料,掃描下方二維碼即可獲取!

記得轉發喲!

Python進階篇

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

下面簡單寫寫我知道的領域的入門:

Web開發

Python Web框架衆多,是建網站的利器。對於建立不太複雜的CMS系統(比如新聞網站,博客網站),Django強到沒朋友,開發效率無敵。對於注重靈活性的網站,Flask可以作爲首選,靈活而小巧,非常優雅的框架。

  1. 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有多強大,不然不能被它所吸引,就學不下去了。
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()
發佈了38 篇原創文章 · 獲贊 16 · 訪問量 6291
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章