Python入門應該怎麼學才能學好?

Python入門應該怎麼學才能學好?

一、Python是什麼

相信混跡IT界的很多朋友都知道,Python是近年來最火的一個熱點,沒有之一。從性質上來講它和我們熟知的C、java、php等沒有什麼本質的區別,也是一種開發語言,而且已經進階到主流的二十多種開發語言的top 3(數據源自最新的TIOBE排行榜)。

來頭不小啊!二十多種主流的開發語言,我該從哪一個開始呢?人生苦短,let‘s python!

二、Python的由來和發展趨勢

Python的前世源自鼻祖“龜叔”。1989年,吉多·範羅蘇姆(Guido van Rossum)在阿姆斯特丹爲了打發無聊的聖誕節,決心開發一個新的腳本解釋程序,自此Python和創始人“龜叔”開始進入公衆視野。他希望這個新的叫做Python的語言,能符合他的理想:創造一種C和shell之間,功能全面,易學易用,可拓展的語言。

1991年,第一個Python編譯器誕生。它基於C語言實現,並能夠調用C語言的庫文件。後面歷經版本的不斷換代革新,Python走到了非常具有里程碑意義的一個節點,即2004的2.4版本誕生了目前最流行的WEB框架Django!六年後Python發展到2.7版本,這是目前爲止2.x版本中最新且較爲廣泛使用版本。

2.7版本的誕生不同於以往2.x版本的垂直換代邏輯,它是2.x版本和3.x版本之間過渡的一個橋樑,以便最大程度上繼承3.x版本的新特性,同時儘量保持對2.x的兼容性。

因此3.x版本在2.7版本之前就已經問世,從2008年的3.0版本開始,python3.x系呈迅猛發展之勢,版本更新活躍,一直發展到現在最新的3.7版本。3.7版本也是目前3.x系列中主流且廣泛使用的版本,後續相關程序的demo,默認均基於3.7版本展開。

三、Python 2 VS Python 3

許多初學者會糾結於從2.x版本還是3.x版本開始python學習之路。這裏簡要對比下個人學習瞭解到的兩者的差異:

3.x版本中 PRINT IS A FUNCTION,使用起來更簡單方便;
33.x版本中默認使用unicode編碼,媽媽再也不用擔心你的程序編碼問題了;
33.x版本中某些庫進行了改名,具體還有待在後續學習中深入展開;
3目前3.x版本還不能完全支持Twisted module,這恐怕是3.x版本中最大的遺憾。也不要過於糾結這點,據說官方正在彌補這個不足,同時也相信能有辦法解決的:)

長江後浪推前浪,python的未來是屬於3.x系列的,官方宣佈2020年之後不再支持2.x系列中最nb的2.7版本,2.x版本將逐漸壽終正寢,最終被銘刻在開發語言的豐碑上。
所以學習3.x版本沒錯的!

四、Python的優缺點

二十多種主流開發語言,python何以能在20多年間以如此迅猛之勢橫掃七大洲八大洋呢?這都是它自身優良的特性決定的.

Python優點:

“優雅”、“明確”、“簡單”
這是python的定位,使得python程序看上去簡單易懂,初學者容易入門,學習成本更低。但隨着學習的不但深入,python一樣可以滿足勝任複雜場景的開發需求。引用一個說法,Python的哲學是就是簡單優雅,儘量寫容易看明白的代碼,儘量寫少的代碼。
開發效率高
python作爲一種高級語言,具有豐富的第三方庫,官方庫中也有相應的功能模塊支持,覆蓋了網絡、文件、GUI、數據庫、文本等大量內容。因此開發者無需事必躬親,遇到主流的功能需求時可以直接調用,在基礎庫的基礎上施展拳腳,可以節省你很多功力和時間成本,大大降低開發週期。
無需關注底層細節
Python作爲一種高級開發語言,在編程時無需關注底層細節(如內存管理等)。
功能強大
Python是一種前端後端通吃的綜合性語言,功能強大,php能勝任的角色它都能做,至於後端如何勝任,需要在後續學習中逐步領悟。
可移植性
Python可以在多種主流的平臺上運行,開發程序時只要繞開對系統平臺的依賴性,則可以在無需修改的前提下運行在多種系統平臺上,具體有待後續學習中深入展開。

一個硬幣總有兩面,那麼Python有缺點嗎?答案是肯定的,總結如下:

Python缺點:

代碼運行速度慢
因爲Python是一種高級開發語言,不像c語言一樣可以深入底層硬件最大程度上挖掘榨取硬件的性能,因此它的運行速度要遠遠慢於c語言。另外一個原因是,Python是解釋型語言,你的代碼在執行時會一行一行地翻譯成CPU能理解的機器碼,這個翻譯過程非常耗時,所以很慢。而C程序是運行前直接編譯成CPU能執行的機器碼,所以非常快。
但需要注意的是,這種慢對於不需要追求硬件高性能的應用場合來講根本不是問題,因爲它們比較的數量級根本不是用戶能直觀感受到的!想想程序執行所需的時間數量級?例如開發一個下載MP3的網絡應用程序,C程序的運行時間需要0.001秒,而Python程序的運行時間需要0.1秒,慢了100倍,但由於網絡更慢,需要等待1秒,用戶體驗幾乎沒有差別,除非你用非常精確的計時器來計時。

五、Python的適用領域

Python典型的適用領域如下:

雲計算開發
雲計算領域最火的語言,典型代表openstack。
web開發
衆多優秀的web框架,衆多優秀的大型web站點(Youtube,instagrm,豆瓣等)均基於python開發。
系統運維
各種自動化工具的開發,CMDB、監控告警系統、堡壘機、配置管理&批量分發工具等均可以搞定。這是自己需要重點學習的領域。
科學計算、人工智能
據網上了解用於圍棋大戰的谷歌阿發狗就使用了python開發(但估計只是部分而已)。
圖形GUI處理
暫時沒多少體會,後續領悟吧。
網絡爬蟲
這年頭網絡爬蟲無處不在,很多都是基於python開發,包括谷歌的爬蟲。這是爬蟲工程師的必備工具。

六、哪些地方在用Python

來幾個鮮活的知名公司應用案例,以示敬意:

谷歌:Google app engine、google earth、爬蟲、廣告等
Youtube: 世界最大的在線視頻網站基於python開發,好強大
Instagram:美國最大的圖片分享網站,全部基於python開發
facebook:大量的基礎庫基於python開發
Redhat:yum包管理工具基於python開發
國內知名互聯網公司的應用:豆瓣、知乎的網站,還有很多主流的互聯網公司(阿里、騰訊、百度、金山、搜狐、盛大、網易、新浪、網易、果殼、土豆等)通過python來完成各種任務。

文章來自:https://www.itjmd.com/news/show-5393.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章