人生苦短,我用Python —— Life is short, you need Python
001_人生苦短我用python.jpg
1.Python的起源
Python的創(chuàng)始人為吉多.范羅蘇姆(Guido van Rossum)
002_吉多.jpg
- 1989 年的圣誕節(jié)期間金度,吉多·范羅蘇姆為了在阿姆斯特丹打發(fā)時間坎拐,決心開發(fā)一個新的解釋程序富俄,作為 ABC 語言的一種繼承
- ABC 是由吉多參加設(shè)計的一種教學(xué)語言稽犁,就吉多本人看來淡喜,ABC 這種語言非常優(yōu)美和強大,是專門為非專業(yè)程序員設(shè)計的锈颗。但是 ABC 語言并沒有成功顷霹,究其原因,吉多認(rèn)為是非開放造成的击吱。吉多決心在 Python 中避免這一錯誤淋淀,并獲取了非常好的效果
- 之所以選中 Python(蟒蛇) 作為程序的名字,是因為他是 BBC 電視劇——蒙提·派森的飛行馬戲團(Monty Python's Flying Circus)的愛好者
- 1991 年覆醇,第一個 Python 解釋器 誕生朵纷,它是用 C 語言實現(xiàn)的,并能夠調(diào)用 C 語言的庫文件
2.解釋器
計算機不能直接理解任何初機器語言以外的語言永脓,所以必須要把程序員所寫的程序語言翻譯成機器語言袍辞,計算機才能執(zhí)行程序。將其他語言翻譯成機器語言的工具常摧,被稱為編譯器搅吁。編譯器翻譯的方式有兩種:一個是編譯,另外一個是解釋落午。兩種方式之間的區(qū)別在于翻譯時間點不同谎懦。當(dāng)編譯器以解釋方式運行的時候,也稱之為解釋器
001_編譯型和解釋型語言工作對比.png
- 編譯型語言:程序在執(zhí)行之前需要一個專門的編譯過程溃斋,把程序編譯成為機器語言的文件界拦,運行時不需要重新翻譯,直接使用編譯的結(jié)果就行了梗劫。程序執(zhí)行效率高享甸,依賴編譯器,跨平臺性差些梳侨。如 C蛉威、C++
- 解釋型語言:解釋型語言編寫的程序不進行預(yù)先編譯,以文本方式存儲程序代碼猫妙,會將代碼一句一句直接運行瓷翻。在發(fā)布程序時,看起來省了道編譯工序割坠,但是在運行程序的時候齐帚,必須先解釋再運行
編譯型語言和解釋型語言對比
- 速度 —— 編譯型語言比解釋型語言執(zhí)行速度快
- 跨平臺性 —— 解釋型語言比編譯型語言跨平臺性好
3.Python 的設(shè)計目標(biāo)
1999 年,吉多·范羅蘇姆向 DARPA 提交了一條名為 “Computer Programming for Everybody” 的資金申請彼哼,并在后來說明了他對 Python 的目標(biāo):
- 一門簡單直觀的語言并與主要競爭者一樣強大
- 開源对妄,以便任何人都可以為它做貢獻(xiàn)
- 代碼像純英語那樣容易理解
- 適用于短期開發(fā)的日常任務(wù)
這些想法中的基本都已經(jīng)成為現(xiàn)實,Python 已經(jīng)成為一門流行的編程語言
4.Python 的設(shè)計哲學(xué)
- 優(yōu)雅
- 明確
- 簡單
- Python 開發(fā)者的哲學(xué)是:用一種方法敢朱,最好是只有一種方法來做一件事
- 如果面臨多種選擇剪菱,Python 開發(fā)者一般會拒絕花俏的語法摩瞎,而選擇明確沒有或者很少有歧義的語法
在 Python 社區(qū),吉多被稱為“仁慈的獨裁者”
5. 為什么選擇 Python孝常?
- 代碼量少
- ……
同一樣問題旗们,用不同的語言解決,代碼量差距還是很多的构灸,一般情況下
Python
是Java
的 1/5上渴,所以說 人生苦短,我用 Python
6. Python 特點
- Python 是完全面向?qū)ο蟮恼Z言
- 函數(shù)喜颁、模塊稠氮、數(shù)字、字符串都是對象半开,在 Python 中一切皆對象
- 完全支持繼承隔披、重載、多重繼承
- 支持重載運算符寂拆,也支持泛型設(shè)計
- Python 擁有一個強大的標(biāo)準(zhǔn)庫奢米,Python 語言的核心只包含 數(shù)字、字符串漓库、列表恃慧、字典、文件 等常見類型和函數(shù)渺蒿,而由 Python 標(biāo)準(zhǔn)庫提供了 系統(tǒng)管理、網(wǎng)絡(luò)通信彪薛、文本處理茂装、數(shù)據(jù)庫接口、圖形系統(tǒng)善延、XML 處理 等額外的功能
- Python 社區(qū)提供了大量的第三方模塊少态,使用方式與標(biāo)準(zhǔn)庫類似。它們的功能覆蓋 科學(xué)計算易遣、人工智能彼妻、機器學(xué)習(xí)、Web 開發(fā)豆茫、數(shù)據(jù)庫接口侨歉、圖形系統(tǒng) 多個領(lǐng)域
面向?qū)ο蟮乃季S方式
- 面向?qū)ο?/strong> 是一種 思維方式,也是一門 程序設(shè)計技術(shù)
- 要解決一個問題前揩魂,首先考慮 由誰 來做幽邓,怎么做事情是 誰 的職責(zé),最后把事情做好就行火脉!
- 對象 就是 誰
- 要解決復(fù)雜的問題牵舵,就可以找多個不同的對象柒啤,各司其職,共同實現(xiàn)畸颅,最終完成需求
7.Python 的優(yōu)缺點
優(yōu)點
- 簡單担巩、易學(xué)
- 免費、開源
- 面向?qū)ο?/strong>
- 豐富的庫
- 可擴展性
- 如果需要一段關(guān)鍵代碼運行得更快或者希望某些算法不公開没炒,可以把這部分程序用
C
或C++
編寫兵睛,然后在Python
程序中使用它們
- 如果需要一段關(guān)鍵代碼運行得更快或者希望某些算法不公開没炒,可以把這部分程序用
- ……
缺點
- 運行速度
- 國內(nèi)市場較小
- 中文資料匱乏