官术网_书友最值得收藏!

1.1 Python簡介

1.1.1 什么是Python

Python(發音[?pa?θ?n])本義是指“蟒蛇”(這里需要說明的是,Python并不是以蟒蛇命名,而是以電視節目Monty Python’s Flying Circus來命名的),標志如圖1.1所示。它是1989年由荷蘭人Guido van Rossum發明的一種面向對象的解釋型高級編程語言。它的設計哲學為優雅、明確、簡單。實際上,Python也是按照這個理念做的,以至于現在網絡上流傳著“人生苦短,我用Python”的說法。可見Python有著簡單、開發速度快、節省時間和精力等特點。

圖1.1 Python的標志

Python本身并非所有的特性和功能都集成到語言核心,而是被設計為可擴充的。它具有豐富和強大的庫,能夠把用其他語言(尤其是C/C++)制作的各種模塊很輕松地聯結在一起。為此,Python常被稱為“膠水”語言。

在1991年Python的第一個公開發行版問世之后,Python的發展并不突出。自從2004年以后,Python的使用率呈線性增長。在2010年時,Python贏得TIOBE 2010年度語言大獎。在2017年,IEEE Spectrum發布的2017年度編程語言排行榜中,Python位居第一,如圖1.2所示。

圖1.2 IEEE Spectrum發布的2017年度編程語言排行榜前10名

1.1.2 Python的版本

Python自發布以來,主要經歷了3個版本的變化。分別是1994年發布的Python 1.0版本(已過時),2000年發布的Python 2.0版本(現在已經更新到2.7.x)和2008年發布的3.0版本(現在已經更新到3.6.x)。

1.Python 2.x和3.x的區別

Python在版本升級時,并不是向下兼容的。在Python的官方網站中同時發布了兩個不同系列的版本,分別是Python 2.x版本和Python 3.x版本,它們之間在基本語法上主要存在以下區別。

 在Python 2.x中,print語句被Python 3.x中的print()函數所代替。

 在Python 3.x中,整數之間的相除(采用除法運算符“/”實現),結果是浮點數,而在Python 2.x中結果是整數。

 Python 3.x源碼文件默認使用UTF-8編碼,所以支持直接寫入的中文,而Python 2.x默認編碼是ASCII,直接寫入中文會被轉換為ANSI編碼。所以在Python 2.x中需要進行相應的轉換。

 在Python 3.x中將range()與xrange()函數整合為一個range()函數,所以在Python 3.x中不存在xrange()函數,而在Python 2.x中這兩個函數是并存的。

說明

除了以上列出的幾點主要區別,Python 3.x和Python 2.x還有一些其他的區別,這里將不再列舉,在后面的章節中涉及時再進行詳細介紹。

2.初學者應該選擇哪個版本

目前,根據Semaphore社區的調查結果,使用Python 2.x的開發者占63.7%,而使用Python 3.x的用戶占36.3%,由此可見,使用Python 2.x的還是占多數。并且Python的作者曾于2014年宣布Python 2.7支持時間延長到2020年。那么作為初學者應該選擇什么版本呢?

答:筆者建議初學者應該選擇Python 3.x版本。理由主要有以下幾點。

 使用Python 3.x畢竟是大勢所趨

雖然目前使用Python 2.x的開發者居多,但是使用Python 3.x的開發者更愿意進行版本更新,并且使用Python 3.x版本的開發者正在迅速擴展,如圖1.3所示。

 Python 3.x較Python 2.x有很大改進

Python 3.x對Python 2.x的標準庫進行了一定程度的重新拆分和整合,使得它比Python 2.x更容易理解,特別是在字符編碼方面。Python 2.x中對于中文字符串支持不好,需要編寫單獨的代碼對中文進行處理,否則不能正確顯示中文。但是在Python 3.x中已經成功地解決了這一難題。

 Python 3.x和Python 2.x思想基本是共通的

Python 3.x和Python 2.x思想基本是共通的,只有少量的語法差別。學會了Python 3.x,只要稍微花一點時間學習Python 2.x的語法,兩種語言就都學會了。

圖1.3 Python主流版本所占的比例

說明

當然,選擇Python 3.x也會有缺點,那就是很多擴展庫的發行總是滯后于Python的發行版本,甚至目前還有很多庫不支持Python 3.x。因此,在選擇Python時,一定要先考慮清楚自己的學習目的。例如,打算做哪方面的開發,需要用到哪些擴展庫,以及擴展庫支持的最高Python版本等。明確這些問題后,再做出選擇。

1.1.3 Python都能做什么

Python作為一種功能強大,并且簡單易學的編程語言而廣受好評,那么Python都能做什么呢?概括起來有以下幾個方面。

1.Web開發

使用Python的一個基本應用就是進行Web開發。在國內,大一些的使用Python做基礎設施的公司有豆瓣、知乎、美團、餓了么,以及搜狐等。在國外,Google在其網絡搜索系統中廣泛應用了Python,并且聘用了Python之父。另外,YouTube視頻分享服務大部分也是用Python編寫的,如圖1.4所示。

圖1.4 在Web開發方面應用Python的公司

2.大數據處理

隨著近幾年大數據的興起,Python也得到了前所未有的爆發。Python借助第三方的大數據處理框架可以很容易地開發出大數據處理平臺。到目前為止,Python是金融分析、量化交易領域里使用最多的語言。例如,美國銀行就利用Python語言開發出了新產品和基礎設施接口,用于處理金融數據。

3.人工智能

人工智能(Artificial Intelligence),英文縮寫為AI。Python之所以這么火,主要是借助人工智能的發展。Python是一門腳本語言,它更適合去做人工智能這個領域,在人工智能上使用Python比其他編程語言有更大的優勢。主要的優勢在于它簡單、快速、可擴展(主要體現在可以應用多個優秀的人工智能框架)等。另外,Python中的機器學習可以實現人工智能領域中的大多數需求。

4.自動化運維開發

掌握一門開發語言已經成為高級運維工程師的必備技能。Python是一個簡單、易學的腳本語言,能滿足絕大部分自動化運維的需求。而對于運維工程師,通常不會開發,所以想學門開發語言,Python是首選。

5.云計算

Python可以廣泛地在科學計算領域發揮獨特的作用。通過強大的支持模塊可以在計算大型數據、矢量分析、神經網絡等方面高效率地完成工作,尤其是在教育科研方面,可以發揮出獨特的優勢。從1997年開始,NASA就在大量使用Python進行各種復雜的科學運算。現在終于發明了一套云計算軟件,取名為OpenStack(開放協議棧),并且對外公開發布。

6.爬蟲

網絡爬蟲(也稱為spider)始于也發展于百度、谷歌。但隨著近幾年大數據的興起,爬蟲應用被提升到前所未有的高度。多數分析挖掘公司都以網絡爬蟲的方式得到不同來源的數據集合,最后為其所用,構建屬于自己的大數據綜合平臺。在爬蟲領域,Python幾乎是霸主地位,通過它提供的標準支持庫基本上可以做到隨意獲取想要的數據。

7.游戲開發

通過Python完全可以編寫出非常棒的游戲程序。例如,知名的游戲Sid Meier’s Civilization(文明)就是用Python編寫的。另外,在網絡游戲開發中Python也有很多應用。它作為游戲腳本內嵌在游戲中,這樣做的好處是既可以利用游戲引擎的高性能,又可以受益于腳本化開發等優點。

說明

Python的應用領域遠比上面提到的多得多。例如,使用Python對圖形/圖像進行處理、編程控制機器人、數據庫編程、編寫可移植的維護操作系統的工具,以及進行自然語言分析等。

主站蜘蛛池模板: 尚义县| 遵义县| 霍林郭勒市| 荥阳市| 南平市| 酒泉市| 成安县| 内黄县| 高阳县| 德安县| 温州市| 青神县| 大方县| 报价| 庆云县| 邵武市| 祁东县| 雅江县| 达尔| 株洲市| 连云港市| 习水县| 台江县| 雷山县| 兴文县| 台州市| 辽阳县| 离岛区| 梅州市| 蛟河市| 定西市| 平原县| 乐东| 阆中市| 武乡县| 隆回县| 庆云县| 牟定县| 石城县| 新田县| 福泉市|