Python3基礎入門-概述

第一章 概述

1. 歷史故事

? Python的創(chuàng)始人為吉多·范羅蘇姆(Guido van Rossum)尿扯,當時他在阿姆斯特丹的CWI工作。1989年的圣誕節(jié)期間轴猎,吉多·范羅蘇姆為了在打發(fā)時間日月,決心開發(fā)一個新的腳本解釋編程掩幢,作為ABC語言的一種繼承,擔負同Amoeba操作系統(tǒng)(英語:Amoeba (operating system))的交互和異常處理寞忿。之所以選中Python作為編程的名字驰唬,是因為他是BBC電視劇——蒙提·派森的飛行馬戲團(Monty Python's Flying Circus)的愛好者。

640px-Guido_van_Rossum_OSCON_2006.jpg

? Python是為了替代使用Unix shell和C語言進行系統(tǒng)管理而從ABC語言發(fā)展起來罐脊,而它的模塊系統(tǒng)主要受到了Modula-3的影響定嗓,它還結(jié)合了C語言的最少爭議特征。就范羅蘇姆本人看來萍桌,ABC這種語言非常優(yōu)美和強大宵溅,是專門為非專業(yè)程序員設計的。但是ABC語言并沒有成功上炎,究其原因恃逻,他認為是非開放造成的。范羅蘇姆決心在Python中避免這一錯誤藕施,并獲取了非常好的效果寇损。

? 當前范羅蘇姆仍然是Python的主要開發(fā)者,決定整個Python語言的發(fā)展方向裳食。Python社群經(jīng)常稱呼他是終身仁慈獨裁者(BDFL)矛市。

? Python 2.0于2000年10月16日發(fā)布,增加了實現(xiàn)完整的垃圾回收诲祸,并且支持Unicode浊吏。同時而昨,整個開發(fā)過程更加透明,社群對開發(fā)進度的影響逐漸擴大找田。

? Python 3.0于2008年12月3日發(fā)布歌憨,此版不完全兼容之前的Python源代碼。不過墩衙,很多新特性后來也被移植到舊的Python 2.6/2.7版本务嫡。

2. 特性

  • 簡單:Python是一種代表簡單主義思想的語言。閱讀一個良好的Python程序就感覺像是在讀英語一樣漆改。它使你能夠?qū)W⒂诮鉀Q問題而不是去搞明白語言本身心铃。
  • 易學:Python極其容易上手,因為Python有極其簡單的說明文檔 籽懦。
  • 速度快:Python 的底層是用 C 語言寫的于个,很多標準庫和第三方庫也都是用 C 寫的,運行速度非衬核常快厅篓。
  • 免費、開源:Python是FLOSS(自由/開放源碼軟件)之一捶码。使用者可以自由地發(fā)布這個軟件的拷貝羽氮、閱讀它的源代碼、對它做改動惫恼、把它的一部分用于新的自由軟件中档押。FLOSS是基于一個團體分享知識的概念。
  • 高層語言:用Python語言編寫程序的時候無需考慮諸如如何管理你的程序使用的內(nèi)存一類的底層細節(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)換到一個你的計算機使用的語言(二進制代碼,即0和1)蹋订。這個過程通過編譯器和不同的標記率挣、選項完成。運行程序的時候露戒,連接/轉(zhuǎn)載器軟件把你的程序從硬盤復制到內(nèi)存中并且運行椒功。而Python語言寫的程序不需要編譯成二進制代碼。你可以直接從源代碼運行 程序智什。在計算機內(nèi)部动漾,Python解釋器把源代碼轉(zhuǎn)換成稱為字節(jié)碼的中間形式,然后再把它翻譯成計算機使用的機器語言并運行荠锭。這使得使用Python更加簡單旱眯。也使得Python程序更加易于移植。
  • 面向?qū)ο螅篜ython既支持面向過程的編程也支持面向?qū)ο蟮木幊讨ぞ拧T凇懊嫦蜻^程”的語言中删豺,程序是由過程或僅僅是可重用代碼的函數(shù)構(gòu)建起來的。在“面向?qū)ο蟆钡恼Z言中愧怜,程序是由數(shù)據(jù)和功能組合而成的對象構(gòu)建起來的呀页。
  • 可擴展性:如果需要一段關(guān)鍵代碼運行得更快或者希望某些算法不公開,可以部分程序用C或C++編寫叫搁,然后在Python程序中使用它們赔桌。
  • 可嵌入性:可以把Python嵌入C/C++程序,從而向程序用戶提供腳本功能渴逻。
  • 豐富的庫:Python標準庫確實很龐大疾党。它可以幫助處理各種工作,包括正則表達式惨奕、文檔生成雪位、單元測試、線程梨撞、數(shù)據(jù)庫雹洗、網(wǎng)頁瀏覽器香罐、CGI、FTP时肿、電子郵件庇茫、XML、XML-RPC螃成、HTML旦签、WAV文件、密碼系統(tǒng)寸宏、GUI(圖形用戶界面)宁炫、Tk和其他與系統(tǒng)有關(guān)的操作。這被稱作Python的“功能齊全”理念氮凝。除了標準庫以外羔巢,還有許多其他高質(zhì)量的庫,如wxPython罩阵、Twisted和Python圖像庫等等竿秆。
  • 規(guī)范的代碼:Python采用強制縮進的方式使得代碼具有較好可讀性。而Python語言寫的程序不需要編譯成二進制代碼永脓。

3. 設計哲學

? Python的設計哲學是“優(yōu)雅”袍辞、“明確”、“簡單”常摧。Python開發(fā)者的哲學是“用一種方法搅吁,最好是只有一種方法來做一件事”,也因此它和擁有明顯個人風格的其他語言很不一樣落午。在設計Python語言時谎懦,如果面臨多種選擇,Python開發(fā)者一般會拒絕花俏的語法溃斋,而選擇明確沒有或者很少有歧義的語法界拦。這些準則被稱為“Python之禪”。在Python解釋器內(nèi)運行import this可以獲得完整的列表梗劫,下面是其中首要:

優(yōu)美優(yōu)于丑陋享甸。明了優(yōu)于隱晦。
簡單優(yōu)于復雜梳侨。復雜優(yōu)于凌亂蛉威。
扁平優(yōu)于嵌套。稀疏優(yōu)于稠密走哺。

>>> import this
The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!

4. 應用領域

  • Web 和 Internet開發(fā)
  • 學計算和統(tǒng)計
  • 人工智能
  • 桌面界面開發(fā)
  • 軟件開發(fā)
  • 后端開發(fā)
  • 網(wǎng)絡爬蟲

5. 執(zhí)行過程

  • Python是一門解釋語言蚯嫌,但是出于效率的考慮,提供了一種編譯的方法。編譯之后就得到pyc文件择示,存儲了字節(jié)碼束凑。Python這點和java很類似,但是Java與Python不同的是栅盲,Python是一個解釋型的語言汪诉,所以編譯字節(jié)碼不是一個強制的操作,事實上剪菱,編譯是一個自動的過程摩瞎,一般不會在意它的存在。編譯成字節(jié)碼可以節(jié)省加載模塊的時間孝常,提高效率。
  • Python先把代碼(.py文件)編譯成字節(jié)碼蚓哩,交給字節(jié)碼虛擬機构灸,然后虛擬機(解釋器)一條一條執(zhí)行字節(jié)碼指令,從而完成程序的執(zhí)行岸梨。
  • 廣泛使用的是C語言開發(fā)的Python解釋器喜颁,但是也有別的語言開發(fā)的解釋器,同時也有Python語言實現(xiàn)的解釋器曹阔。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末半开,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子赃份,更是在濱河造成了極大的恐慌寂拆,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件抓韩,死亡現(xiàn)場離奇詭異纠永,居然都是意外死亡,警方通過查閱死者的電腦和手機谒拴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進店門尝江,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人英上,你說我怎么就攤上這事炭序。” “怎么了苍日?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵惭聂,是天一觀的道長。 經(jīng)常有香客問我易遣,道長彼妻,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任屋摇,我火速辦了婚禮,結(jié)果婚禮上幽邓,老公的妹妹穿的比我還像新娘炮温。我一直安慰自己,他們只是感情好牵舵,可當我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布柒啤。 她就那樣靜靜地躺著畸颅,像睡著了一般担巩。 火紅的嫁衣襯著肌膚如雪没炒。 梳的紋絲不亂的頭發(fā)上涛癌,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天,我揣著相機與錄音送火,去河邊找鬼拳话。 笑死,一個胖子當著我的面吹牛种吸,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播坚俗,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼形耗!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起激涤,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤判呕,失蹤者是張志新(化名)和其女友劉穎倦踢,沒想到半個月后侠草,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體辱挥,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡边涕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了园爷。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡童社,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出扰楼,到底是詐尸還是另有隱情,我是刑警寧澤弦赖,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站忘嫉,受9級特大地震影響案腺,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜康吵,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望晦嵌。 院中可真熱鬧,春花似錦惭载、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽券腔。三九已至,卻和暖如春纷纫,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背辱魁。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留染簇,地道東北人。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓剖笙,卻偏偏與公主長得像,于是被迫代替她去往敵國和親弥咪。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,779評論 2 354