初識Python

人生苦短籽孙,我用Python

logo

????????Python的創(chuàng)始人為荷蘭人吉多·范羅蘇姆(Guido van Rossum)恩闻。1989年圣誕節(jié)期間扁达,在阿姆斯特丹窄潭,Guido為了打發(fā)圣誕節(jié)的無趣,決心開發(fā)一個新的腳本解釋程序腋舌,作為ABC語言的一種繼承渣聚。之所以選中Python(大蟒蛇的意思)作為該編程語言的名字,是取自英國20世紀(jì)70年代首播的電視喜劇《蒙提·派森的飛行馬戲團(tuán)》(Monty Python's Flying Circus)蔬蕊。

吉多

????????Python已經(jīng)成為最受歡迎的程序設(shè)計語言之一结澄。自從2004年以后,python的使用率呈線性增長岸夯。Python 2于2000年10月16日發(fā)布麻献,穩(wěn)定版本是Python 2.7。Python 3于2008年12月3日發(fā)布猜扮,不完全兼容Python 2赎瑰。2011年1月,它被TIOBE編程語言排行榜評為2010年度語言破镰。

優(yōu)點(diǎn)

簡單:Python是一種代表簡單主義思想的語言餐曼。閱讀一個良好的Python程序就感覺像是在讀英語一樣。它使你能夠?qū)W⒂诮鉀Q問題而不是去搞明白語言本身鲜漩。

易學(xué):Python極其容易上手源譬,因為Python有極其簡單的說明文檔?。

易讀孕似、易維護(hù):風(fēng)格清晰劃一踩娘、強(qiáng)制縮進(jìn)

用途廣泛:Web開發(fā)、網(wǎng)絡(luò)爬蟲喉祭、人工智能养渴、數(shù)據(jù)分析、自動化運(yùn)維等泛烙。

速度快:Python 的底層是用 C 語言寫的理卑,很多標(biāo)準(zhǔn)庫和第三方庫也都是用 C 寫的,運(yùn)行速度非潮伟保快藐唠。

免費(fèi)帆疟、開源:Python是FLOSS(自由/開放源碼軟件)之一。使用者可以自由地發(fā)布這個軟件的拷貝宇立、閱讀它的源代碼踪宠、對它做改動、把它的一部分用于新的自由軟件中妈嘹。FLOSS是基于一個團(tuán)體分享知識的概念柳琢。

高層語言:用Python語言編寫程序的時候無需考慮諸如如何管理你的程序使用的內(nèi)存一類的底層細(xì)節(jié)。

可移植性:由于它的開源本質(zhì)润脸,Python已經(jīng)被移植在許多平臺上(經(jīng)過改動使它能夠工作在不同平臺上)。這些平臺包括Linux津函、Windows肖粮、FreeBSD、Macintosh尔苦、Solaris涩馆、OS/2、Amiga允坚、AROS魂那、AS/400、BeOS稠项、OS/390涯雅、z/OS、Palm OS展运、QNX活逆、VMS、Psion拗胜、Acom RISC OS蔗候、VxWorks、PlayStation埂软、Sharp Zaurus锈遥、Windows CE、PocketPC勘畔、Symbian以及Google基于linux開發(fā)的android平臺所灸。

解釋性:一個用編譯性語言比如C或C++寫的程序可以從源文件(即C或C++語言)轉(zhuǎn)換到一個你的計算機(jī)使用的語言(二進(jìn)制代碼,即0和1)炫七。這個過程通過編譯器和不同的標(biāo)記爬立、選項完成。

運(yùn)行程序的時候诉字,連接/轉(zhuǎn)載器軟件把你的程序從硬盤復(fù)制到內(nèi)存中并且運(yùn)行懦尝。而Python語言寫的程序不需要編譯成二進(jìn)制代碼。你可以直接從源代碼運(yùn)行 程序壤圃。

在計算機(jī)內(nèi)部陵霉,Python解釋器把源代碼轉(zhuǎn)換成稱為字節(jié)碼的中間形式,然后再把它翻譯成計算機(jī)使用的機(jī)器語言并運(yùn)行伍绳。這使得使用Python更加簡單踊挠。也使得Python程序更加易于移植。

面向?qū)ο?/b>:Python既支持面向過程的編程也支持面向?qū)ο蟮木幊坛迳薄T凇懊嫦蜻^程”的語言中效床,程序是由過程或僅僅是可重用代碼的函數(shù)構(gòu)建起來的。在“面向?qū)ο?/a>”的語言中权谁,程序是由數(shù)據(jù)和功能組合而成的對象構(gòu)建起來的剩檀。

Python是完全面向?qū)ο?/a>的語言。函數(shù)旺芽、模塊沪猴、數(shù)字、字符串都是對象采章。并且完全支持繼承运嗜、重載、派生悯舟、多繼承担租,有益于增強(qiáng)源代碼的復(fù)用性。Python支持重載運(yùn)算符和動態(tài)類型抵怎。相對于Lisp這種傳統(tǒng)的函數(shù)式編程語言奋救,Python對函數(shù)式設(shè)計只提供了有限的支持。有兩個標(biāo)準(zhǔn)庫(functools, itertools)提供了Haskell和Standard ML中久經(jīng)考驗的函數(shù)式程序設(shè)計工具反惕。

可擴(kuò)展性菠镇、可擴(kuò)充性:如果需要一段關(guān)鍵代碼運(yùn)行得更快或者希望某些算法不公開,可以部分程序用C或C++編寫承璃,然后在Python程序中使用它們利耍。

Python本身被設(shè)計為可擴(kuò)充的。并非所有的特性和功能都集成到語言核心盔粹。Python提供了豐富的API和工具隘梨,以便程序員能夠輕松地使用C語言C++舷嗡、Cython來編寫擴(kuò)充模塊轴猎。Python編譯器本身也可以被集成到其它需要腳本語言的程序內(nèi)。因此进萄,很多人還把Python作為一種“膠水語言”(glue language)使用捻脖。使用Python將其他語言編寫的程序進(jìn)行集成和封裝锐峭。在Google內(nèi)部的很多項目,例如Google Engine使用C++編寫性能要求極高的部分可婶,然后用Python或Java/Go調(diào)用相應(yīng)的模塊沿癞。《Python技術(shù)手冊》的作者馬特利(Alex Martelli)說:“這很難講矛渴,不過椎扬,2004 年,Python 已在Google?內(nèi)部使用具温,Google 召募許多 Python 高手蚕涤,但在這之前就已決定使用Python,他們的目的是 Python where we can, C++ where we must铣猩,在操控硬件的場合使用C++揖铜,在快速開發(fā)時候使用 Python〈锩螅”

可嵌入性:可以把Python嵌入C/C++程序蛮位,從而向程序用戶提供腳本功能。

豐富的庫:Python標(biāo)準(zhǔn)庫確實(shí)很龐大鳞绕。它可以幫助處理各種工作失仁,包括正則表達(dá)式、文檔生成们何、單元測試萄焦、線程、數(shù)據(jù)庫冤竹、網(wǎng)頁瀏覽器拂封、CGI、FTP鹦蠕、電子郵件冒签、XML、XML-RPC钟病、HTML萧恕、WAV文件、密碼系統(tǒng)肠阱、GUI(圖形用戶界面)票唆、Tk和其他與系統(tǒng)有關(guān)的操作。這被稱作Python的“功能齊全”理念屹徘。除了標(biāo)準(zhǔn)庫以外走趋,還有許多其他高質(zhì)量的庫,如wxPython噪伊、Twisted和Python圖像庫等等簿煌。

規(guī)范的代碼:Python采用強(qiáng)制縮進(jìn)的方式使得代碼具有較好可讀性氮唯。而Python語言寫的程序不需要編譯成二進(jìn)制代碼。Python的作者設(shè)計限制性很強(qiáng)的語法姨伟,使得不好的編程習(xí)慣(例如if語句的下一行不向右縮進(jìn))都不能通過編譯惩琉。其中很重要的一項就是Python的縮進(jìn)規(guī)則。一個和其他大多數(shù)語言(如C)的區(qū)別就是授滓,一個模塊的界限琳水,完全是由每行的首字符在這一行的位置來決定(而C語言是用一對花括號{}來明確的定出模塊的邊界肆糕,與字符的位置毫無關(guān)系)般堆。通過強(qiáng)制程序員們縮進(jìn)(包括if,for和函數(shù)定義等所有需要使用模塊的地方)诚啃,Python確實(shí)使得程序更加清晰和美觀淮摔。

高級動態(tài)編程:雖然Python可能被粗略地分類為“腳本語言”(script language),但實(shí)際上一些大規(guī)模軟件開發(fā)計劃例如Zope始赎、MnetBitTorrent和橙,Google也廣泛地使用它。Python的支持者較喜歡稱它為一種高級動態(tài)編程語言造垛,原因是“腳本語言”泛指僅作簡單程序設(shè)計任務(wù)的語言魔招,如shellscript、VBScript等只能處理簡單任務(wù)的編程語言五辽,并不能與Python相提并論办斑。

做科學(xué)計算優(yōu)點(diǎn)多:說起科學(xué)計算,首先會被提到的可能是MATLAB杆逗。除了MATLAB的一些專業(yè)性很強(qiáng)的工具箱還無法被替代之外乡翅,MATLAB的大部分常用功能都可以在Python世界中找到相應(yīng)的擴(kuò)展庫。和MATLAB相比罪郊,用Python做科學(xué)計算有如下優(yōu)點(diǎn):

● 首先蠕蚜,MATLAB是一款商用軟件,并且價格不菲悔橄。而Python完全免費(fèi)靶累,眾多開源的科學(xué)計算庫都提供了Python的調(diào)用接口。用戶可以在任何計算機(jī)上免費(fèi)安裝Python及其絕大多數(shù)擴(kuò)展庫癣疟。

● 其次尺铣,與MATLAB相比,Python是一門更易學(xué)争舞、更嚴(yán)謹(jǐn)?shù)某绦蛟O(shè)計語言凛忿。它能讓用戶編寫出更易讀、易維護(hù)的代碼竞川。

● 最后店溢,MATLAB主要專注于工程和科學(xué)計算叁熔。然而即使在計算領(lǐng)域,也經(jīng)常會遇到文件管理床牧、界面設(shè)計荣回、網(wǎng)絡(luò)通信等各種需求。而Python有著豐富的擴(kuò)展庫戈咳,可以輕易完成各種高級任務(wù)心软,開發(fā)者可以用Python實(shí)現(xiàn)完整應(yīng)用程序所需的各種功能。

缺點(diǎn)

單行語句和命令行輸出問題:很多時候不能將程序連寫成一行著蛙,如import sys;for i in sys.path:print i删铃。而perl和awk就無此限制,可以較為方便的在shell下完成簡單程序踏堡,不需要如Python一樣猎唁,必須將程序?qū)懭胍粋€.py文件。

給初學(xué)者帶來困惑:獨(dú)特的語法顷蟆,這也許不應(yīng)該被稱為局限诫隅,但是它用縮進(jìn)來區(qū)分語句關(guān)系的方式還是給很多初學(xué)者帶來了困惑。即便是很有經(jīng)驗的Python程序員帐偎,也可能陷入陷阱當(dāng)中逐纬。

運(yùn)行速度慢:這里是指與C和C++相比。Python開發(fā)人員盡量避開不成熟或者不重要的優(yōu)化削樊。一些針對非重要部位的加快運(yùn)行速度的補(bǔ)丁通常不會被合并到Python內(nèi)豁生。所以很多人認(rèn)為Python很慢。不過嫉父,根據(jù)二八定律沛硅,大多數(shù)程序?qū)λ俣纫蟛桓摺T谀承\(yùn)行速度要求很高的情況绕辖,Python設(shè)計師傾向于使用JIT技術(shù)摇肌,或者用使用C/C++語言改寫這部分程序∫羌剩可用的JIT技術(shù)是PyPy围小。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市树碱,隨后出現(xiàn)的幾起案子肯适,更是在濱河造成了極大的恐慌,老刑警劉巖成榜,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件框舔,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)刘绣,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進(jìn)店門樱溉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人纬凤,你說我怎么就攤上這事福贞。” “怎么了停士?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵挖帘,是天一觀的道長稚瘾。 經(jīng)常有香客問我道逗,道長,這世上最難降的妖魔是什么陵像? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任猖任,我火速辦了婚禮你稚,結(jié)果婚禮上瓷耙,老公的妹妹穿的比我還像新娘朱躺。我一直安慰自己,他們只是感情好搁痛,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布长搀。 她就那樣靜靜地躺著,像睡著了一般鸡典。 火紅的嫁衣襯著肌膚如雪源请。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天彻况,我揣著相機(jī)與錄音谁尸,去河邊找鬼。 笑死纽甘,一個胖子當(dāng)著我的面吹牛良蛮,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播悍赢,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼决瞳,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了左权?” 一聲冷哼從身側(cè)響起皮胡,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎赏迟,沒想到半個月后屡贺,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年甩栈,在試婚紗的時候發(fā)現(xiàn)自己被綠了裳扯。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡谤职,死狀恐怖饰豺,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情允蜈,我是刑警寧澤冤吨,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站饶套,受9級特大地震影響漩蟆,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜妓蛮,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一怠李、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蛤克,春花似錦捺癞、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至筋现,卻和暖如春唐础,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背矾飞。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工一膨, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人洒沦。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓豹绪,卻偏偏與公主長得像,于是被迫代替她去往敵國和親微谓。 傳聞我的和親對象是個殘疾皇子森篷,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,941評論 2 355

推薦閱讀更多精彩內(nèi)容