Python誕生到如今已經有20多年了,可是Python仍然是很是熱門的編程語言之一,不少平臺中使用Python開發。表1-1所示的是TIOBE社區發佈的2017年3月和2018年3月的編程語言排行榜,可見Python語言的熱度,或許這也是不少人選擇學習Python的主要緣由。python
Python之父荷蘭人吉多 範·羅蘇姆(Guido van
Rossum)在1989年聖誕節期間,在阿姆斯特丹,爲了打發聖誕節的無聊時間,決心開發一門解釋程序語言。1991年第一個Python解釋器公開版發佈,它是用C語言編寫實現的,並可以調用C語言的庫文件。Python一誕生就已經具備了類、函數和異常處理等內容,包含字典、列表等核心數據結構,以及模塊爲基礎的拓展系統。web
2000年Python 2.0發佈,Python 2
的最後一個版本是2.7,它還會存在較長的一段時間,Python
2.7支持時間延長到2020年。2008年Python 3.0發佈,到本書編寫時Python
3.6發佈,注意本書編寫是基於Python 3.6版本。Python 3與Python
2是不兼容的,因爲不少Python程序和庫都是基於Python 2的,因此Python 2和Python
3程序會長期並存的,不過Python
3的新功能吸引了不少開發人員,不少開發人員正從Python 2升級到Python
3。做爲初學者若是學習Python應該從Python 3開始。數據庫
Python單詞翻譯「蟒蛇」,想到這種動物不會有很愉快的感受。那爲何這種新語言取名爲Python呢?那是由於吉多喜歡看英國電視秀節目蒙提·派森的飛行馬戲團(Monty
Python’s Flying Circus),因而他將這種新語言起名爲Python。編程
Python語言有它的設計理念和哲學,稱爲「Python之禪」。
Python之禪是Python的靈魂,理解Python之禪能幫開發人員編寫出優秀的Python程序。在Python交互式方式運行工具IDLE中輸入import
this命令,如圖1-1所示顯示內容就是Python之禪。服務器
Python之禪翻譯解釋以下:微信
Python之禪 by Tim Peters網絡
優美勝於醜陋數據結構
明瞭勝於晦澀框架
簡潔勝於複雜
複雜勝於凌亂
扁平勝於嵌套
寬鬆勝於緊湊
可讀性很重要
即使是特例,也不可違背這些規則
不要捕獲全部錯誤,除非你肯定須要這樣作
若是存在多種可能,不要猜想
一般只有惟一一種是最佳的解決方案
雖然這並不容易,由於你不是Python之父
作比不作要好,但不假思索就動手還不如不作
若是你的方案很難懂,那確定不是一個好方案,反之亦然
命名空間很是有用,應當多加利用
Python語言可以流行起來,並長久不衰,得益於Python語言有不少優秀的關鍵特色。這些特色以下:
Python設計目標之一就是可以方便學習,使用簡單。它使你可以專一於解決問題而不是過多關注語言自己。
Python支持面向對象的編程。與其餘主要的語言如C++和Java相比,Python以一種很是強大又簡單的方式實現面向對象編程。
Python是解釋執行的,即Python程序不須要編譯成二進制代碼,能夠直接從源代碼運行程序。在計算機內部,Python解釋器把源代碼轉換成爲中間字節碼形式,而後再把它解釋爲計算機使用的機器語言並執行。
Python是免費開放源碼軟件之一。簡單地說,你能夠自由地發佈這個軟件的拷貝、閱讀它的源代碼、對它作改動、把它的一部分用於新的自由軟件中。
Python解釋器已經被移植在許多平臺上,Python程序無需修改就能夠在多個平臺上運行。
Python被稱爲膠水語言,所謂膠水語言是用來鏈接其餘語言編寫的軟件組件或模塊。Python可以稱爲膠水語言是由於標準版本Python是用C編譯的,稱爲CPython。因此Python能夠調用C語言,藉助於C接口Python幾乎能夠驅動全部已知的軟件。
Python標準庫(官方提供的)種類繁多,它能夠幫助處理各類工做,這些庫不須要安裝直接可使用。除了標準庫之外,還有許多其餘高質量的庫可使用。
Python採用強制縮進的方式使得代碼具備極佳的可讀性。
雖然Python並非一種單純的函數式編程,可是也提供了函數式編程的支持,如函數類型、Lambda表達式、高階函數和匿名函數等。
Python是動態類型語言,它不會檢查數據類型,在變量聲明是不須要指定數據類型。
Python與Java語言同樣,都是高級語言,他們不能直接訪問硬件,也不能編譯爲本地代碼運行。除此以外,Python幾乎能夠作任何事情。下面是Python語言主要的應用前景:
Python語言能夠開發傳統的桌面應用程序,Tkinter、PyQt、PySide、wxPython和PyGTK等Python庫能夠快速開發桌面應用程序。
Python也常常被用於Web開發。不少網站是基於Python
Web開發的,如豆瓣、知乎和Dropbox等。不少成熟的Python
Web框架,如Django、Flask、Tornado
、Bottle和web2py等Web框架。能夠幫助開發人員快速開發Web應用。
Python能夠編寫服務器運維自動化腳本。不少服務器採用Linux和UNIX系統,之前不少運維人員編寫系統管理Shell腳本實現運維工做。而如今使用Python編寫系統管理,在可讀性、性能、代碼可重性、可擴展性等幾方面優於普通Shell腳本。
Python語言也普遍地應用科學計算,NumPy、SciPy和Pandas是優秀的數值計算和科學計算庫。
Python語言也可將複雜的數據經過圖表展現出來,便於數據分析。Matplotlib庫是優秀的可視化庫。
Python語言很早就用來編寫網絡爬蟲。谷歌等搜索引擎公司大量地使用Python語言編寫網絡爬蟲。從技術層面上講Python語言有不少這方面的工具,urllib、Selenium和BeautifulSoup等。還能夠網絡爬蟲框架scrapy。
人工智能是如今很是火的一個方向。Python普遍應用於深度學習、機器學習和天然語言處理等方向。因爲Python語言的動態特色,不少人工智能框架是採用Python語言實現的。
大數據分析中涉及到的分佈式計算、數據可視化、數據庫操做等,Python中都有成熟庫能夠完成這些工做。Hadoop和Spark均可以直接使用Python編寫計算邏輯。
Python能夠直接調用Open
GL實現3D繪製,這是高性能遊戲引擎的技術基礎。全部不少Python語言實現的遊戲引擎,如Pygame、Pyglet和Cocos2d等。
對於一個初學者必需要熟悉以下幾個Python相關網址:
Python HOWTO:https://docs.python.org/3/howto/index.html
PEP規範[^1]:https://www.python.org/dev/peps/
[^1]: PEP是Python Enhancement
Proposals的縮寫。PEP是爲Python社區提供各類加強功能的技術規格說明書,也是提交新特性,以便讓社區指出問題,精確化技術文檔的提案。
http://edu.51cto.com/topic/1507.html
http://www.zhijieketang.com/group/8
https://yuedu.baidu.com/ebook/5823871e59fafab069dc5022aaea998fcc2240fc
做者微博:@tony_關東昇br/>郵箱:eorient@sina.com智捷課堂微信公共號:zhijieketangPython讀者服務QQ羣:628808216