1. 程式人生 > >Python 新手入門引導

Python 新手入門引導

這是一篇 Python 入門指南,針對那些沒有任何程式設計經驗,從零開始學習 Python 的同學。不管你學習的出發點是興趣驅動、拓展思維,還是工作需要、想要轉行,都可以此文作為一個參考。

在這個資訊爆炸的時代,以 “Python入門” 為關鍵字搜尋出的結果成千上萬。不少小白選手難免會東一榔頭西一棒槌,最終看了很多文章,卻仍沒跨過新手那道門檻。

結合自身的學習經驗以及與很多自學者的溝通了解,我們整理出一條可操作性較強的自學路線,同時收集了多種形式的 Python 優質學習資源,供諸位尚未入門或剛入門不久的同學參考。

0. 心態準備

程式設計是一門技術,也可說是一門手藝。如同書法、繪畫、樂器、雕刻等,技藝純熟的背後肯定付出了長時間的反覆練習。程式設計的世界浩瀚無邊,所以請保持一顆敬畏的心態去學習,認真對待寫下的每一行程式碼,甚至每一個字元。收拾好自己的心態,向著程式設計的世界出發。

1. 入門階段

第一步至關重要,是關係到初學者從入門到精通還是從入門到放棄。選一條合適的入門道路,並堅持下去。

1.1 配置 Python 學習環境

Python2 還是 Python3?

很多人都在糾結入門應該學 Python2 還是 Python3。這其實不是個問題。我從沒聽過某個人是 Python2 程式設計師或 Python3 程式設計師。二者只是程式不相容,思想上並無大差別,語法變動也並不多。選擇任何一個入手,都沒有大影響。

如果你仍然無法抉擇,那請選擇 Python3,畢竟這是未來的趨勢,參考知乎回答
Python2 還是 Python3? 應該學習最新版本的 Python 3 還是舊版本的 Python 2?

編輯器該如何選?

我推薦 pycharm 社群版,配置簡單、功能強大、使用起來省時省心,對初學者友好。並且還是完全免費的!

其他可以嘗試的編輯器:

為了讓初學者集中更多的精力在寫程式碼這件事情上,所以我們就不推薦 vim 和 Emacs 了。

作業系統?

Python 支援現有所有主流操作平臺,不管是 windows 還是 mac 還是 linux,都能很好的執行 Python。並且後兩者都預設自帶 Python 環境。

1.2 入門教程

《Crossin的程式設計教室 - Python 入門》

自認為算得上是最淺顯易懂的入門教程,很適合沒有任何程式設計基礎的人上手。

74篇圖文教程,從最簡單的 Python 安裝到基本語法、資料結構、函式、檔案操作、網路請求、面向物件等逐步深入。

對於如何加深對一個知識點的印象,最好的辦法就是自己寫程式碼實現一遍。如果還是不懂,那就再來一遍。所以無論你使用什麼教程,都請將其中的示例程式碼全部在電腦上輸入並執行,learning by doing!

配套練習

Crossin的程式設計教室 - 基礎練習

課外練習

《笨辦法學Python》

這是本很有名的 Python 書籍,但並不適合純零基礎自學。因為其中重實踐但不解釋,新手很容易看得一頭霧水。作為學習同時的輔助倒更合適。

其他推薦教程

《父與子的程式設計之旅》 又名 《與孩子一起學程式設計》

這也是一本非常適合零基礎的 Python 入門書籍。喜歡閱讀紙質書的同學可以買一本,不少線上書店有售。

《簡明 Python 教程》

這是一本言簡意賅的 Python 入門教程,簡單直白,沒有廢話。適合有過其他語言基礎的人快速瞭解 Python 語法。

以上是我們推薦的學習材料,主要偏重沒有太多程式設計基礎的純新手。其他也有一些不錯的資源,可供不同需求的學習者使用:

線上文字教程:

  • 廖雪峰的Python教程

廖先生的教程涵蓋了 Python 知識的方方面面,內容更加系統,有一定深度,有一定基礎之後學習會有更多的收穫。

其他入門書籍:

  • Head First Python
  • Dive Into Python
  • Python 核心程式設計
  • 深入理解 Python
  • Python 標準庫
  • Python 程式設計指南

我們蒐集了一些網上的電子書版本,放在了網盤裡:

互動式學習網站:

  • codecademy
  • codeschool

codecademy 與 codeschool 這兩個通過網際網路學習 Python 的網站均備受好評。不妨去體驗一下。

線上視訊課程:

  • 線上教育網站(Coursera網易雲edx課堂騰訊課堂等)有哪些值得推薦的 Python 教程?

2. 提升階段

完成入門階段的基礎學習之後,常會陷入一個瓶頸期,通過看教程很難進一步提高程式設計水平。這時候,需要的是練習,大量的練習。

可以從書上的例程開始寫,再寫小程式片段,然後寫完整的專案。

我們收集了一些練習題和網站。可根據自己階段,選擇適合的練習去做。建議最好挑選一兩個系列重點完成,而不是到處淺嘗輒止。

  • Crossin的程式設計教室 - 每週一坑

程式設計教室的公眾號每週會放出一道題目供練習,並在下一週講解。歡迎關注微信公眾號,和大家一起提交解答。

往期題目:

  • Crossin的程式設計教室 - 程式設計例項

相對於程式設計教室基礎練習著重於單一知識點,程式設計例項更注重對知識的融會貫通。

  • 實驗樓 提升程式設計水平從做專案開始
  • hackerrank Python 部分難度循序漸進,符合學習曲線
  • codewar 社群型程式設計練習網站,內容由易到難
  • leetcode 為程式設計面試準備,對初學者稍難
  • 牛客網 提供 BAT 等大廠筆試題目
  • codecombat 一邊遊戲一邊程式設計
  • projecteuler 純粹的程式設計練習網站
  • 菜鳥教程100例 基於 py2 的基礎練習
  • 知乎:Python3.x基礎學習資料整理
  • 知乎:Python學習路徑及練手專案合集
  • 知乎:Python 的練手專案有哪些值得推薦?

3. 遇到問題怎麼辦?

學習的過程中或多或少都會有各種問題出現,不要試著逃避,真的勇士敢於直面慘淡的 BUG。

第一步肯定是利用好搜尋引擎,怎麼用也是一門技術活:

第二步,求助於各大同性交友網站(大霧):

StackOverflow

v2ex

segmentfault

4. 過來人的建議

在初學程式設計的過程中,你會有各種各樣的疑惑,你會遇到各種各樣的坑。這時,前人的經驗尤為重要,我們整理了一些知乎問題供參考:

你是如何自學Python的?

怎麼用最短時間高效而踏實地學習 Python?

對於程式設計零基礎,第一個語言是 Python 的人有什麼建議?

Python 程式設計,應該養成哪些好的習慣?

如何處理 Python 入門難以進步的現象?

5. 寫在最後

經過第一步和第二步訓練,相信一般的小程式都難不倒你了,你已經在程式設計的世界裡已經邁出了關鍵的一步。接下來就可以去挑戰具體的專案了,爬蟲、web開發、資料分析、機器學習等等豐富的世界已經向你敞開,選擇一個方向重新出發吧!

記住:在程式設計的道路上,沒有捷徑。