由於公眾號文章中無法設置外鏈,所以文中的連結無法直接點擊跳轉。請點擊文末的 閱讀原文,或在公眾號裡回復 新手,進入本文相關的資源導航頁面。
這是一篇 Python 入門指南,針對那些沒有任何編程經驗,從零開始學習 Python 的同學。不管你學習的出發點是興趣驅動、拓展思維,還是工作需要、想要轉行,都可以此文作為一個參考。
在這個信息爆炸的時代,以 「Python入門」 為關鍵字搜索出的結果成千上萬。不少小白選手難免會東一榔頭西一棒槌,最終看了很多文章,卻仍沒跨過新手那道門檻。
結合自身的學習經驗以及與很多自學者的溝通了解,我們整理出一條可操作性較強的自學路線,同時收集了多種形式的 Python 優質學習資源,供諸位尚未入門或剛入門不久的同學參考。
0. 心態準備編程是一門技術,也可說是一門手藝。如同書法、繪畫、樂器、雕刻等,技藝純熟的背後肯定付出了長時間的反覆練習。編程的世界浩瀚無邊,所以請保持一顆敬畏的心態去學習,認真對待寫下的每一行代碼,甚至每一個字符。收拾好自己的心態,向著編程的世界出發。
1. 入門階段第一步至關重要,是關係到初學者從入門到精通還是從入門到放棄。選一條合適的入門道路,並堅持下去。
1.1 配置 Python 學習環境Python2 還是 Python3?很多人都在糾結入門應該學 Python2 還是 Python3。這其實不是個問題。我從沒聽過某個人是 Python2 程式設計師或 Python3 程式設計師。二者只是程序不兼容,思想上並無大差別,語法變動也並不多。選擇任何一個入手,都沒有大影響。
如果你仍然無法抉擇,那請選擇 Python3,畢竟這是未來的趨勢,參考知乎回答
Python2 還是 Python3?
https://www.zhihu.com/question/24549965
我推薦 pycharm 社區版,配置簡單、功能強大、使用起來省時省心,對初學者友好。並且還是完全免費的!
社區版地址:https://www.jetbrains.com/pycharm/
其他可以嘗試的編輯器:
為了讓初學者集中更多的精力在寫代碼這件事情上,所以我們就不推薦 vim 和 Emacs 了。
操作環境?Python 支持現有所有主流操作平臺,不管是 windows 還是 mac 還是 linux,都能很好的運行 Python。並且後兩者都默認自帶 Python 環境。
1.2 入門教程《Crossin的編程教室 - Python 入門》
http://crossincode.com/course/lesson_list/
自認為算得上是最淺顯易懂的入門教程,很適合沒有任何編程基礎的人上手。
74篇圖文教程,從最簡單的 Python 安裝到基本語法、數據結構、函數、文件操作、網絡請求、面向對象等逐步深入。
對於如何加深對一個知識點的印象,最好的辦法就是自己寫代碼實現一遍。如果還是不懂,那就再來一遍。所以無論你使用什麼教程,都請將其中的示例代碼全部在電腦上輸入並運行,learning by doing!
配套練習Crossin的編程教室 - 基礎練習
http://crossincode.com/oj/sample_list/
課外練習《笨辦法學Python》
http://www.kancloud.cn/kancloud/learn-python-hard-way/49863
這是本很有名的 Python 書籍,但並不適合純零基礎自學。因為其中重實踐但不解釋,新手很容易看得一頭霧水。作為學習同時的輔助倒更合適。
其他推薦教程《父與子的編程之旅》 又名 《與孩子一起學編程》
這也是一本非常適合零基礎的 Python 入門書籍。喜歡閱讀紙質書的同學可以買一本,不少在線書店有售。
《簡明 Python 教程》
在線閱讀:http://www.kuqin.com/abyteofpython_cn/
這是一本言簡意賅的 Python 入門教程,簡單直白,沒有廢話。適合有過其他語言基礎的人快速了解 Python 語法。
以上是我們推薦的學習材料,主要偏重沒有太多編程基礎的純新手。其他也有一些不錯的資源,可供不同需求的學習者使用:
在線文字教程:http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000
廖先生的教程涵蓋了 Python 知識的方方面面,內容更加系統,有一定深度,有一定基礎之後學習會有更多的收穫。
其他入門書籍:Head First Python
Dive Into Python
Python 核心編程
深入理解 Python
Python 標準庫
Python 編程指南
我們搜集了一些網上的電子書版本,放在了網盤裡:https://pan.baidu.com/s/1qWuGvF2
交互式學習網站:https://www.codecademy.com/zh/learn/python
https://www.codeschool.com/
codecademy 與 codeschool 這兩個通過網際網路學習 Python 的網站均備受好評。不妨去體驗一下。
在線視頻課程:https://www.zhihu.com/question/46835030
2. 提升階段完成入門階段的基礎學習之後,常會陷入一個瓶頸期,通過看教程很難進一步提高編程水平。這時候,需要的是練習,大量的練習。
可以從書上的例程開始寫,再寫小程序片段,然後寫完整的項目。
我們收集了一些練習題和網站。可根據自己階段,選擇適合的練習去做。建議最好挑選一兩個系列重點完成,而不是到處淺嘗輒止。
編程教室的公眾號每周會放出一道題目供練習,並在下一周講解。歡迎關注微信公眾號,和大家一起提交解答。
往期題目:
【每周一坑】三門問題
【每周一坑】雙色球選號器
【每周一坑】統計英文小說詞頻
【每周一坑】特殊迴文數
http://crossincode.com/oj/practice_list/
相對於編程教室基礎練習著重於單一知識點,編程實例更注重對知識的融會貫通。
https://www.shiyanlou.com/
https://www.hackerrank.com/domains/python/py-introduction
https://www.codewars.com/?language=python
https://leetcode.com/
https://www.nowcoder.com/
http://www.codecombat.cn/
https://projecteuler.net/archives
http://www.runoob.com/python/python-100-examples.html
https://zhuanlan.zhihu.com/p/23561159
https://www.zhihu.com/question/29372574
3. 遇到問題怎麼辦?學習的過程中或多或少都會有各種問題出現,不要試著逃避,真的勇士敢於直面慘澹的 BUG。
第一步肯定是利用好搜尋引擎,怎麼用也是一門技術活:
編程初學者如何使用搜尋引擎
https://zhuanlan.zhihu.com/p/20683456
第二步,求助於各大同性交友網站(大霧):
StackOverflow
http://stackoverflow.com/
v2ex
https://www.v2ex.com/
segmentfault
https://segmentfault.com/
4. 過來人的建議在初學編程的過程中,你會有各種各樣的疑惑,你會遇到各種各樣的坑。這時,前人的經驗尤為重要,我們整理了一些知乎問題供參考:
你是如何自學Python的?
https://www.zhihu.com/question/20702054
怎麼用最短時間高效而踏實地學習 Python?
https://www.zhihu.com/question/28530832
對於編程零基礎,第一個語言是 Python 的人有什麼建議?
https://www.zhihu.com/question/22785587
Python 編程,應該養成哪些好的習慣?
https://www.zhihu.com/question/28966220
如何處理 Python 入門難以進步的現象?
https://www.zhihu.com/question/27969262
5. 寫在最後經過第一步和第二步訓練,相信一般的小程序都難不倒你了,你已經在編程的世界裡已經邁出了關鍵的一步。接下來就可以去挑戰具體的項目了,爬蟲、web開發、數據分析、機器學習等等豐富的世界已經向你敞開,選擇一個方向重新出發吧!
記住:在編程的道路上,沒有捷徑。
近期文章推薦閱讀:
只學2個月編程能寫出什麼代碼?他們表示:You can you code!
如何用100行Python代碼做出魔性聲控遊戲「八分音符醬」
數據分析:當趙雷唱民謠時他唱些什麼?
一行代碼掃出「敬業福」
我扒了杜蕾斯的微博
Python 爬蟲爬取美劇網站
個人開發者如何申請微信小程序
今天,你搶到票了嗎?
爆款遊戲《貪吃蛇大作戰》的 Python 實現
歡迎加入
Crossin的編程教室
crossincode.com
新手入門QQ群:553518572
微信請加 crossin11 留言入群(新手/進階)
請把我們分享給身邊愛學習的小夥伴 :)
點擊左下角「閱讀原文」,查看更多學習資源