我是一名普通的初中生畢業,現在在鋼廠工作。在知乎上看到知道創宇的很多大牛。所以我覺得我應該也要跟他們一樣。所以現在想利用業餘時間學習編程,不知道先學Python是否合適,但是看到大家都贊同的一句“搞就牛”。所以想先學會Python,再跟大牛們一起學習,討論。但是發現Python有2.X和3.X版本之分。搜到很多學習資料都是2.X版本的。我想問問各位大牛,針對這樣的情況,有沒有好的建議,或者學習資料推薦。
回複內容:
@Fooying 說得不錯,但有一些細節我需要補充一下:
- Python 3.x並不是完全不相容2.x的代碼,只要遵循一定的規範、利用諸如six之類的package,程式員完全可以開發2/3 compatible的程式。另外,官方還推出了一個2to3的tool協助代碼遷移,民間也弄了一個3to2的tool。如果想要編寫2/3 compatible的程式,這裡有一個比較好的check list:Porting code to Python 3 with 2to3。
- 不建議入手《Python核心編程》的第二版,原因與人渣宋吉廣相關,詳情請自行Google。
從開發的角度來說,Python3填掉了2中的一些坑,對於普通使用者來說最主要的區別就是(Strings, Unicode)變成了(Strings, Bytes)、廣泛使用iterator等,其次就是引入、擴充了一些進階機制,如metaclass、parameter annotation、“started” target等。從易用性的角度來說Python3完爆2(至少我是這麼認為的),不過很可惜的是,目前一些關鍵的package還沒有來得及port到3上來,同時很多公司的項目考慮到成本因素也沒有及時將原本Py2的代碼port到3上。
更多請參考我Blog中的一篇文章:Python學習指引
PS1:為什麼沒人提鋼廠非法僱傭童工的問題?
PS2:題主請重視英文、數學與演算法的學習。
自己做了一個自學python的小組,歡迎到弊站交流心得~
30天嘗試新事情
網路上很多你需要重複去做的,都可以寫python指令碼去做。
比如知乎的一些好文章,你要儲存下來,或者自動定期發送到kindle電子書
python爬蟲 推送知乎文章到kindle電子書
github: GitHub - Rockyzsu/zhihuToKindle
python 暴力破解wordpress部落格後台登陸密碼
批量擷取色影無忌圖片 Python_小組
(連結修複中)
(連結修複中)
用python破解某211大學BBS論壇使用者密碼
(連結修複中)
感覺都是自己為了完成某種目的而且做得,這樣動機會更加明確。 目前準備爬取股票資訊,做研究使用(炒股啦)
更多 30天嘗試新事情
謝謝邀請。
首先先讚賞下樓主的Python都是P大寫開頭的
其次說一點,Python 3.x不能向下相容2.x
這點意味著你拿別人用Python 2.x寫的代碼在3.x的環境下是不能直接啟動並執行,需要改動
現在很多網上很多的代碼與文檔中的Python代碼一般都是2.x,一般都會採用Python 2.7(很多用Python的公司,也是繼續用著Python 2.7,而不是3.x)
如果樓主想學3.0,建議先瞭解清楚兩個迭代版本的區別,再進行學習
然後一般在學習Python的時候我會推薦一本書《Python核心編程》,現在似乎有第三版了,不過沒中文版的,中文版最新版是第二版,第三版不清楚,第二版是Python 2.x的,但基礎文法那些肯定是基本相同的,就不用說,在你瞭解兩個大版本區別後,同樣是學習資料
然後我們公司在面試的時候一般會要求面試者做兩道題:
1、寫一個爬蟲(用線程池等)
2、寫個論壇程式
別乍一看覺得挺簡單的,怎麼寫好一個爬蟲是有很多講究的;然後寫論壇程式,可以學習Python的Web架構,如web.py Django等
另外,只有一點,邊學邊碼,實踐才是大道理,在電腦的世界,說的再多,不去做,都是扯淡。。。其實也沒多少不同,也就是 print 要加括弧,input 不用 raw,map filter 預設是迭代器而不是列表,import 機制也有變化比如說相對參照的 . ,不用考慮編碼等等。
3 裡面改掉 2 裡面很多莫名其妙的地方,值得去學,因為 2 裡面有很多向上相容,說以 3->2 比 2->3 容易。
初中畢業學 Python 沒問題。自學的話可以看看 Dive into Python 3 深入 Python 3
,不過還是要學會查英文資料,中文 Python 資料還不算很全。
好吧,有人反對 為什麼《Dive into Python》不值得推薦
,不過我就是看這個的(不過不是零基礎),Python 簡明手冊也不錯。
實際上最好看官方文檔,只是翻譯不全: Overview — Python 3 文檔(簡體中文) 3.2.2 documentation
嗯,最重要的是利用 Python 中的 Help 函數。有什麼函數不會,直接 help(函數名不加括弧) 就好(不過是英文)。
Python 不是一門要你去拿個資料學學學學完了就好了,你用著用著就是在學,最好不要為學Python 而學,有一個目標,比如說做遊戲,網站或者某個工具(爬蟲),邊做邊學不用怕。
而且最重要的是,我看問題描述你的目的不是學 Python,而是學編程,你可以在略懂 Python 以後去多看看各種語言,看看編程的各種方法,怎麼抽象怎麼複用,Python 的物件導向和別的語言的物件導向,乃至函數式編程。放心不難的,只要你在編程中找到樂趣喜歡編程而不是單純的為工作什麼的而編程。無他,擼碼三萬行,不會大法也不行,來,跟我走,拯救世界的責任就交給你了網上有很多python 3的資料,不管做什麼,善用Google是第一步。
乾脆直接發地址出來。
Python 3 入門教程:http://liam0205.me/attachment/Python/The_Python_Tutorial_zh-cn.pdf
看書吧,Pyhthon3自學書籍(13-15年的書,之前的就不要看了):
- 入門:Introducing Python(英文版2014.4.8出版)此書中文翻譯版:Python語言及其應用(中文版2016.01出版,可以預定到,兩周前已拿到手)。 此外入門還推薦廖雪峰老師的網站:Python教程(2.x和3.x的兩個版本都有)網址為:http://www.liaoxuefeng.com
- 進階:Learning Python, 5th Edition(英文版2013.6出版) 此書中文翻譯只有第四版的,有一些區別,但對應著看,差不多:Python學習手冊 第四版(中文版2011年4月出版)
- 進階技巧磨練:Python Cookbook,3rd Edition (英文版2013.5出版)此書中文翻譯版:Python Cookbook(第三版)中文版(中文版 2015年5月1日出版)
去找個2.x與3區別總結 一類的文章,然後就開始學習…另外不要在這類問題上止步不前,關鍵在於開始做能有愛好。在謀生的過程中慢慢積累這自己的理想。勿忘初衷,不斷學習積累。
像1樓大牛的答案就說得很好。算是明確了個方向。入門先從應用面廣的2.X開始,基礎打好了,以後掌握其他的也容易很多。
現在網路方便,確實給自學提供了很大的便利。但也容易讓人淹沒在諮詢的汪洋中。選好種入手的方式,開始學習才最重要。
也不知道題主現在進展如何。這幾年國外再推廣程式設計語言從小學起的活動,不少入門級的網站可以邊玩邊學。
學的差不多,就要邊實踐邊摸索,這是編程學習的不二法則。可以做做網站,做做程式實現些功能,不管有沒有意義。
另外:Instagram,豆瓣,42qu,知乎就是用Python做的。學好英文
利用好網易公開課
多練習,最好是實踐
比如可以看看這裡Codecademy
不恥下問
——————
當然,還要說一句,你是初中學曆?不確定你的基礎知識底子如何,最好業餘把高中知識學一遍
也可以考慮看看 達內科技,是個培訓學校
祝你成功!