- Python從入門到項目實踐(超值版)
- 聚慕課教育研發(fā)中心
- 2117字
- 2020-01-20 14:50:09
1.1 走進(jìn)Python語言
歡迎來到Python的“編程”世界,很榮幸您能選擇本書作為開啟Python編程世界大門的鑰匙。Python是一種優(yōu)雅而健壯的編程語言,崇尚優(yōu)美、明確、簡單,是一種優(yōu)秀并廣泛使用的語言,它繼承了傳統(tǒng)編譯語言的強大性和通用性,同時也借鑒了簡單腳本和解釋語言的易用性。它可以幫您完成任意想完成的工作,只有想不到,沒有Python做不到。
Python的創(chuàng)始人為吉多·范羅蘇姆(Guido van Rossum),人稱“龜叔”,于1989年年底發(fā)明Python,第一個公開發(fā)行版發(fā)行于1991年。像Perl語言一樣,Python源代碼同樣遵循GPL(GNU General Public License,GNU通用公共授權(quán)協(xié)議),如圖1-1所示。
Python作為一門高級編程語言,它的誕生雖然很偶然,但是它得到程序員的喜愛卻是必然之路。“龜叔”給Python的定位是“優(yōu)雅”“明確”“簡單”,所以Python程序看上去非常簡單易懂,初學(xué)者學(xué)Python語言,不但入門容易,如果深入地研究下去,可以輕松編寫出非常復(fù)雜和功能強大的程序。

圖1-1 Python語言創(chuàng)始人
Python的設(shè)計具有很強的可讀性,相比其他語言經(jīng)常使用英文關(guān)鍵字、其他語言的一些標(biāo)點符號,它具有比其他語言更有特色的語法結(jié)構(gòu)。
- Python是一種解釋型語言:這意味著開發(fā)過程中沒有了編譯這個環(huán)節(jié)。類似于PHP和Perl語言。
- Python是交互式語言:這意味著可以在一個Python提示符下直接互動執(zhí)行編寫程序。
- Python是面向?qū)ο笳Z言:這意味著Python支持面向?qū)ο蟮娘L(fēng)格或代碼封裝在對象的編程技術(shù)。
- Python是初學(xué)者的語言:Python對初級程序員而言,是一種偉大的語言,它支持廣泛的應(yīng)用程序開發(fā),從簡單的文字處理到WWW瀏覽器再到游戲。
1.1.1 Python語言的前世今生

1989年,為了打發(fā)圣誕節(jié)假期,Guido開始編寫Python語言的編譯器。Python這個名字來自Guido所摯愛的電視劇Monty Python's Flying Circus。他希望這種新的語言叫作Python語言,能符合他的理想:創(chuàng)造一種C和Shell之間,功能全面,易學(xué)易用,可拓展的語言。
1991年,第一個Python編譯器誕生。它是用C語言實現(xiàn)的,并能夠調(diào)用C語言的庫文件。從一開始,Python就已經(jīng)具有了類、函數(shù)、異常處理、包含表和詞典在內(nèi)的核心數(shù)據(jù)類型以及模塊等為基礎(chǔ)的拓展系統(tǒng)。當(dāng)前Python的最新版本為3.6。Python語言的版本中2.X和3.X是個較大的跳躍和隔離,它突破了大多數(shù)軟件向低版本兼容的特性。3.X版本不再兼容2.X版本程序,并且有了較大的改動,是一次里程碑的跳躍。Python版本演進(jìn)如表1-1所示。
表1-1 Python軟件版本發(fā)布年代

1.1.2 Python語言的優(yōu)缺點

通過上面的介紹,可以了解到Python是一種動態(tài)解釋性的語言。那么這種語言具有哪些優(yōu)缺點呢?
1. Python語言的優(yōu)點
Python語言具有如下優(yōu)點。
1)易學(xué)
Python的定位是“優(yōu)雅”“明確”“簡單”,所以Python程序看上去總是簡單易懂,初學(xué)者學(xué)Python,不但入門容易,而且將來深入下去,可以編寫非常復(fù)雜的程序。
2)開發(fā)效率高
Python有非常強大的第三方庫,基本上用戶想通過計算機實現(xiàn)的任何功能,Python官方庫里都有相應(yīng)的模塊進(jìn)行支持,直接下載調(diào)用后,在基礎(chǔ)庫的基礎(chǔ)上再進(jìn)行開發(fā),可大大降低開發(fā)周期,避免重復(fù)造輪子。
3)高級語言
使用Python語言編寫程序的時候,無須考慮諸如如何管理程序使用內(nèi)存一類的底層細(xì)節(jié)。
4)可移植性
由于Python的開源本質(zhì),Python已經(jīng)被移植在許多平臺上(經(jīng)過改動使它能夠工作在不同平臺上)。如果避免使用依賴于系統(tǒng)的特性,那么所有Python程序無須修改就幾乎可以在市場上所有的系統(tǒng)平臺上運行。
5)可擴(kuò)展性
如果需要一段關(guān)鍵代碼運行得更快或者希望某些算法不公開,可以把部分程序用C或C++編寫,然后在Python程序中使用它們。
6)可嵌入性
可以把Python嵌入C/C++程序中,從而向程序用戶提供腳本功能。
2. Python語言的缺點
Python語言具有如下缺點。
1)速度慢
Python的運行速度相比C語言確實慢很多,跟Java相比也要慢一些。其實這里所指的運行速度慢,在大多數(shù)情況下用戶是無法直接感知到的,必須借助測試工具才能體現(xiàn)出來。例如用C運行一個程序花了0.01s,用Python是0.1s,這樣C語言直接比Python快了10倍,算是非常夸張了,但是人們是無法直接通過肉眼感知的。其實在大多數(shù)情況下,Python已經(jīng)完全可以滿足人們對程序速度的要求,除非要寫對速度要求極高的搜索引擎等,在這種情況下,當(dāng)然還是建議用C去實現(xiàn)。
2)代碼不能加密
因為Python是解釋型語言,它的源碼都是以明文形式存放的,不過這并不算是一個缺點,如果項目要求源代碼必須是加密的,那一開始就不應(yīng)該用Python去實現(xiàn)。
3)線程不能利用多CPU問題
這是Python被人們詬病最多的一個缺點,GIL(Global Interpreter Lock,全局解釋器鎖)是計算機程序設(shè)計語言解釋器用于同步線程的工具,使得任何時刻僅有一個線程在執(zhí)行。Python的線程是操作系統(tǒng)的原生線程,在Linux上為Pthread,在Windows上為Win thread,完全由操作系統(tǒng)調(diào)度線程的執(zhí)行。一個Python解釋器進(jìn)程內(nèi)有一條主線程,以及多條用戶程序的執(zhí)行線程。即使在多核CPU平臺上,由于GIL的存在,所以禁止多線程的并行執(zhí)行。
1.1.3 Python語言的應(yīng)用領(lǐng)域
Python越來越受歡迎,用戶數(shù)量每年都大幅度增長的原因在于Python逐漸成為所有IT技術(shù)的首選語言。幾乎所有的IT領(lǐng)域,包括Web研發(fā)、云計算(AWS、OpenStack、VMware、Google云、Oracle云等)、基礎(chǔ)設(shè)施自動化、軟件測試、移動端測試、大數(shù)據(jù)和Hadoop、數(shù)據(jù)科學(xué)等,都將Python作為首選編程語言。像神經(jīng)網(wǎng)絡(luò)、智能算法、數(shù)據(jù)分析、圖像處理、科學(xué)計算等更需要金字塔式頂尖人才!目前Python的主要應(yīng)用領(lǐng)域如圖1-2所示。
Python可以應(yīng)用于眾多領(lǐng)域,如數(shù)據(jù)分析、組件集成、網(wǎng)絡(luò)服務(wù)、圖像處理、數(shù)值計算和科學(xué)計算等。目前,業(yè)內(nèi)幾乎所有大中型互聯(lián)網(wǎng)企業(yè)都在使用Python,如YouTube、Dropbox、BT、Quora、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、騰訊以及美團(tuán)等。

圖1-2 Python應(yīng)用領(lǐng)域
- DevOps with Kubernetes
- 零基礎(chǔ)學(xué)C++程序設(shè)計
- Python數(shù)據(jù)可視化:基于Bokeh的可視化繪圖
- Java完全自學(xué)教程
- 深入淺出Java虛擬機:JVM原理與實戰(zhàn)
- Visual Basic程序設(shè)計教程
- 實戰(zhàn)Java高并發(fā)程序設(shè)計(第3版)
- 區(qū)塊鏈底層設(shè)計Java實戰(zhàn)
- iPhone應(yīng)用開發(fā)從入門到精通
- Python項目實戰(zhàn)從入門到精通
- Mastering AWS Security
- Java 9 Programming By Example
- Instant Apache Camel Messaging System
- 會當(dāng)凌絕頂:Java開發(fā)修行實錄
- 基于MATLAB的控制系統(tǒng)仿真及應(yīng)用