
Python誕生到現(xiàn)在已經(jīng)有20多年了,但是Python仍然是非常熱門的編程語言之一,很多平臺中使用Python開發(fā)。表1-1所示的是TIOBE社區(qū)發(fā)布的2017年3月和2018年3月的編程語言排行榜,可見Python語言的熱度,或許這也是很多人選擇學(xué)習(xí)Python的主要原因。

Python語言歷史
Python之父荷蘭人吉多 范·羅蘇姆(Guido van
Rossum)在1989年圣誕節(jié)期間,在阿姆斯特丹,為了打發(fā)圣誕節(jié)的無聊時間,決心開發(fā)一門解釋程序語言。1991年第一個Python解釋器公開版發(fā)布,它是用C語言編寫實現(xiàn)的,并能夠調(diào)用C語言的庫文件。Python一誕生就已經(jīng)具有了類、函數(shù)和異常處理等內(nèi)容,包含字典、列表等核心數(shù)據(jù)結(jié)構(gòu),以及模塊為基礎(chǔ)的拓展系統(tǒng)。
2000年P(guān)ython 2.0發(fā)布,Python 2
的最后一個版本是2.7,它還會存在較長的一段時間,Python
2.7支持時間延長到2020年。2008年P(guān)ython 3.0發(fā)布,到本書編寫時Python
3.6發(fā)布,注意本書編寫是基于Python 3.6版本。Python 3與Python
2是不兼容的,由于很多Python程序和庫都是基于Python 2的,所以Python 2和Python
3程序會長期并存的,不過Python
3的新功能吸引了很多開發(fā)人員,很多開發(fā)人員正從Python 2升級到Python
3。作為初學(xué)者如果學(xué)習(xí)Python應(yīng)該從Python 3開始。
Python單詞翻譯“蟒蛇”,想到這種動物不會有很愉快的感覺。那為什么這種新語言取名為Python呢?那是因為吉多喜歡看英國電視秀節(jié)目蒙提·派森的飛行馬戲團(Monty
Python’s Flying Circus),于是他將這種新語言起名為Python。
Python語言設(shè)計哲學(xué)——Python之禪
Python語言有它的設(shè)計理念和哲學(xué),稱為“Python之禪”。
Python之禪是Python的靈魂,理解Python之禪能幫開發(fā)人員編寫出優(yōu)秀的Python程序。在Python交互式方式運行工具IDLE中輸入import
this命令,如圖1-1所示顯示內(nèi)容就是Python之禪。

Python之禪翻譯解釋如下:
Python之禪 by Tim Peters
優(yōu)美勝于丑陋
明了勝于晦澀
簡潔勝于復(fù)雜
復(fù)雜勝于凌亂
扁平勝于嵌套
寬松勝于緊湊
可讀性很重要
即便是特例,也不可違背這些規(guī)則
不要捕獲所有錯誤,除非你確定需要這樣做
如果存在多種可能,不要猜測
通常只有唯一一種是最佳的解決方案
雖然這并不容易,因為你不是Python之父
做比不做要好,但不假思索就動手還不如不做
如果你的方案很難懂,那肯定不是一個好方案,反之亦然
命名空間非常有用,應(yīng)當多加利用
Python語言特點
Python語言能夠流行起來,并長久不衰,得益于Python語言有很多優(yōu)秀的關(guān)鍵特點。這些特點如下:
- 簡單易學(xué)
Python設(shè)計目標之一就是能夠方便學(xué)習(xí),使用簡單。它使你能夠?qū)W⒂诮鉀Q問題而不是過多關(guān)注語言本身。
- 面向?qū)ο?/li>
Python支持面向?qū)ο蟮木幊獭Ec其他主要的語言如C++和Java相比,Python以一種非常強大又簡單的方式實現(xiàn)面向?qū)ο缶幊獭?/p>
- 解釋性
Python是解釋執(zhí)行的,即Python程序不需要編譯成二進制代碼,可以直接從源代碼運行程序。在計算機內(nèi)部,Python解釋器把源代碼轉(zhuǎn)換成為中間字節(jié)碼形式,然后再把它解釋為計算機使用的機器語言并執(zhí)行。
- 免費開源
Python是免費開放源碼軟件之一。簡單地說,你可以自由地發(fā)布這個軟件的拷貝、閱讀它的源代碼、對它做改動、把它的一部分用于新的自由軟件中。
- 可移植性
Python解釋器已經(jīng)被移植在許多平臺上,Python程序無需修改就可以在多個平臺上運行。
- 膠水語言
Python被稱為膠水語言,所謂膠水語言是用來連接其他語言編寫的軟件組件或模塊。Python能夠稱為膠水語言是因為標準版本Python是用C編譯的,稱為CPython。所以Python可以調(diào)用C語言,借助于C接口Python幾乎可以驅(qū)動所有已知的軟件。
- 豐富的庫
Python標準庫(官方提供的)種類繁多,它可以幫助處理各種工作,這些庫不需要安裝直接可以使用。除了標準庫以外,還有許多其他高質(zhì)量的庫可以使用。
- 規(guī)范的代碼
Python采用強制縮進的方式使得代碼具有極佳的可讀性。
- 支持函數(shù)式編程
雖然Python并不是一種單純的函數(shù)式編程,但是也提供了函數(shù)式編程的支持,如函數(shù)類型、Lambda表達式、高階函數(shù)和匿名函數(shù)等。
- 動態(tài)類型
Python是動態(tài)類型語言,它不會檢查數(shù)據(jù)類型,在變量聲明是不需要指定數(shù)據(jù)類型。
Python語言應(yīng)用前景
Python與Java語言一樣,都是高級語言,他們不能直接訪問硬件,也不能編譯為本地代碼運行。除此之外,Python幾乎可以做任何事情。下面是Python語言主要的應(yīng)用前景:
- 桌面應(yīng)用開發(fā)
Python語言可以開發(fā)傳統(tǒng)的桌面應(yīng)用程序,Tkinter、PyQt、PySide、wxPython和PyGTK等Python庫可以快速開發(fā)桌面應(yīng)用程序。
- Web應(yīng)用開發(fā)
Python也經(jīng)常被用于Web開發(fā)。很多網(wǎng)站是基于Python
Web開發(fā)的,如豆瓣、知乎和Dropbox等。很多成熟的Python
Web框架,如Django、Flask、Tornado
、Bottle和web2py等Web框架。可以幫助開發(fā)人員快速開發(fā)Web應(yīng)用。
- 自動化運維
Python可以編寫服務(wù)器運維自動化腳本。很多服務(wù)器采用Linux和UNIX系統(tǒng),以前很多運維人員編寫系統(tǒng)管理Shell腳本實現(xiàn)運維工作。而現(xiàn)在使用Python編寫系統(tǒng)管理,在可讀性、性能、代碼可重性、可擴展性等幾方面優(yōu)于普通Shell腳本。
- 科學(xué)計算
Python語言也廣泛地應(yīng)用科學(xué)計算,NumPy、SciPy和Pandas是優(yōu)秀的數(shù)值計算和科學(xué)計算庫。
- 數(shù)據(jù)可視化
Python語言也可將復(fù)雜的數(shù)據(jù)通過圖表展示出來,便于數(shù)據(jù)分析。Matplotlib庫是優(yōu)秀的可視化庫。
- 網(wǎng)絡(luò)爬蟲
Python語言很早就用來編寫網(wǎng)絡(luò)爬蟲。谷歌等搜索引擎公司大量地使用Python語言編寫網(wǎng)絡(luò)爬蟲。從技術(shù)層面上講Python語言有很多這方面的工具,urllib、Selenium和BeautifulSoup等。還可以網(wǎng)絡(luò)爬蟲框架scrapy。
- 人工智能
人工智能是現(xiàn)在非?;鸬囊粋€方向。Python廣泛應(yīng)用于深度學(xué)習(xí)、機器學(xué)習(xí)和自然語言處理等方向。由于Python語言的動態(tài)特點,很多人工智能框架是采用Python語言實現(xiàn)的。
- 大數(shù)據(jù)
大數(shù)據(jù)分析中涉及到的分布式計算、數(shù)據(jù)可視化、數(shù)據(jù)庫操作等,Python中都有成熟庫可以完成這些工作。Hadoop和Spark都可以直接使用Python編寫計算邏輯。
- 游戲開發(fā)
Python可以直接調(diào)用Open
GL實現(xiàn)3D繪制,這是高性能游戲引擎的技術(shù)基礎(chǔ)。所有很多Python語言實現(xiàn)的游戲引擎,如Pygame、Pyglet和Cocos2d等。
如何獲得幫助
對于一個初學(xué)者必須要熟悉如下幾個Python相關(guān)網(wǎng)址:
Python HOWTO:https://docs.python.org/3/howto/index.html
PEP規(guī)范[1]:https://www.python.org/dev/peps/
配套視頻
http://www.zhijieketang.com/classroom/10/courses
配套源代碼
http://www.zhijieketang.com/group/8
紙質(zhì)版電商
京東:https://item.jd.com/12468732.html
當當:http://product.dangdang.com/25574315.html
電子書
https://yuedu.baidu.com/ebook/5823871e59fafab069dc5022aaea998fcc2240fc
作者微博:@tony_關(guān)東升
郵箱:eorient@sina.com
智捷課堂微信公共號:zhijieketang
Python讀者服務(wù)QQ群:565736812
-
PEP是Python Enhancement
Proposals的縮寫。PEP是為Python社區(qū)提供各種增強功能的技術(shù)規(guī)格說明書,也是提交新特性,以便讓社區(qū)指出問題,精確化技術(shù)文檔的提案。 ?
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 原文鏈接 《Python數(shù)據(jù)分析》(Python for Data Analysis, 2nd Edition)第...
- 關(guān)于Mongodb的全面總結(jié) MongoDB的內(nèi)部構(gòu)造《MongoDB The Definitive Guide》...
- 《Java從小白到大?!芳堎|(zhì)版已經(jīng)上架了?。。?Java誕生到現(xiàn)在已經(jīng)有20多年了,但是Java仍然是非常熱門的編...
- 這些東西完全是自己寫筆記給自己看,純記錄形式。想系統(tǒng)學(xué)習(xí)JS當然是去看一本教程。 接觸一門語言,通常會了解一下都有...