Python的優點不少,據很多人說是用了之后就不想再學其他語言的語言,羅列其優點如下:?
1、面向對象?
從根本上講,Python?是一種面向對象的語言。它的類模塊支持多態、操作符重載和多重繼承等高級概念,并且以Python?特有的簡潔的語法和類型,OOP?十分易于使用。事實上,即使你不懂這些術語,仍會發現學習Python?比學習其他OOP?語言要容易得多。?
除了作為一種強大的代碼構建和重用手段以外,Python?的OOP?特性使它成為面向對象系統語言如C++?和Java?的理想腳本工具。例如,通過適當的粘接代碼,Python?程序可以對C++?、Java?和C#?的類進行子類的定制。?
OOP?是Python?的一個選擇而已,這一點非常重要。不必強迫自己立馬成為一個面向對象高手,你同樣可以繼續深入學習。就像C++?一樣,Python?既支持面向對象編程也支持面向過程編程的模式。如果條件允許的話,其面向對象的工具即刻生效。這對處于預先設計階段的策略開發模式十分有用。?
2、免費?
Python?的使用和分發是完全免費的。就像其他的開源軟件一樣,例如,Tcl?、Perl?、Linux?和Apache?。你可以從Internet?上免費獲得Python?系統的源代碼。復制Python?,將其嵌入你的系統或者隨產品一起發布都沒有任何限制。實際上,如果你愿意的話,甚至可以銷售它的源代碼。?
但請別誤會:"免費"并不代表"?無支持"。恰恰相反,Python?的在線社區對用戶需求的響應和商業軟件一樣快。而且,由于Python?完全開放源代碼,提高了開發者的實力,并產生了一個很大的專家團隊。盡管學習研究或改變一個程序語言的實現并不是對每一個人來說都那么有趣,但是當你知道還有源代碼作為最終的幫助和無盡的文檔資源是多么的令人欣慰。你不需要去依賴商業廠商。?
Python?的開發是由社區驅動的,是Internet?大范圍的協同合作努力的結果。這個團體包括Python?的創始者Guido?van?Rossum:Python?社區內公認的"終身的慈善獨裁者"[Benevolent?Dictator?for?Life?(BDFL)?]?。Python?語言的改變必須遵循一套規范的有約束力的程序(稱作PEP?流程),并需要經過規范的測試系統和BDFL?進行徹底檢查。值得慶幸的是,正是這樣使得Python?相對于其他語言可以保守地持續改進。?
3、可移植?
Python?的標準實現是由可移植的ANSI?C?編寫的,可以在目前所有的主流平臺上編譯和運行。例如,如今從PDA?到超級計算機,到處可以見到Python?在運行。Python?可以在下列平臺上運行(這里只是部分列表):?
Linux?和UNIX?系統。?
微軟Windows?和DOS?(所有版本)。?
Mac?OS?(包括OS?X?和Classic?)。?
BeOS?、OS/2?、VMS?和QNX?。?
實時操作系統,例如,VxWorks?。?
Cray?超級計算機和IBM?大型機。?
運行Palm?OS?、PocketPC?和Linux?的PDA?。?
運行Windows?Mobile?和Symbian?OS?的移動電話。?
游戲終端和iPod?。?
還有更多。?
除了語言解釋器本身以外,Python?發行時自帶的標準庫和模塊在實現上也都盡可能地考慮到了跨平臺的移植性。此外,Python?程序自動編譯成可移植的字節碼,這些字節碼在已安裝兼容版本Python?的平臺上運行的結果都是相同的。?
這些意味著Python?程序的核心語言和標準庫可以在Linux?、Windows?和其他帶有Python?解釋器的平臺無差別的運行。大多數Python?外圍接口都有平臺相關的擴展(例如,COM?支持Windows?),但是核心語言和庫在任何平臺都一樣。就像之前我們提到的那樣,Python?還包含了一個叫做Tkinter?的Tk?GUI?工具包,它可以使Python?程序實現功能完整的無需做任何修改即可在所有主流GUI?平臺運行的用戶圖形界面。?
4、功能強大?
從特性的觀點來看,Python?是一個混合體。它豐富的工具集使它介于傳統的腳本語言(例如,Tcl?、Scheme?和Perl?)和系統語言(例如,C、C++?和Java)?之間。Python?提供了所有腳本語言的簡單和易用性,并且具有在編譯語言中才能找到的高級軟件工程工具。不像其他腳本語言,這種結合使Python?在長期大型的開發項目中十分有用。下面是一些Python?工具箱中的工具簡介。?
動態類型Python?在運行過程中隨時跟蹤對象的種類,不需要代碼中關于復雜的類型和大小的聲明。事實上,你將在第6章中看到,Python?中沒有類型或變量聲明這回事。因為Python?代碼不是約束數據的類型,它往往自動地應用了一種廣義上的對象。?
自動內存管理Python?自動進行對象分配,當對象不再使用時將自動撤銷對象("垃圾回收"),當需要時自動擴展或收縮。Python?能夠代替你進行底層的內存管理。?
大型程序支持為了能夠建立更大規模的系統,Python?包含了模塊、類和異常等工具。這些工具允許你組織系統為組件,使用OOP?重用并定制代碼,并以一種優雅的方式處理事件和錯誤。?
內置對象類型Python?提供了常用的數據結構作為語言的基本組成部分。例如,列表(list?)、字典(dictionary?)、字符串(string?)。我們將會看到,它們靈活并易于使用。例如,內置對象可以根據需求擴展或收縮,可以任意地組織復雜的信息等。?
內置工具為了對以上對象類型進行處理,Python?自帶了許多強大的標準操作,包括合并(concatenation?)、分片(slice?)、排序(sort?)和映射(mapping?)等。?
庫工具為了完成更多特定的任務,Python?預置了許多預編碼的庫工具,從正則表達式匹配到網絡都支持。Python?的庫工具在很多應用級的操作中發揮作用。?
第三方工具由于?Python?是開放源代碼的,它鼓勵開發者提供Python?內置工具之外的預編碼工具。從網絡上,可以找到COM?、圖像處理、CORBA?ORB?、XML?、數據庫等很多免費的支持工具。?
除了這一系列的Python?工具外,Python?保持了相當簡潔的語法和設計。綜合這一切得到的就是一個具有腳本語言所有可用性的強大編程工具。?
5、可混合?
Python?程序可以以多種方式輕易地與其他語言編寫的組件"粘接"在一起。例如,Python?的C語言API?可以幫助Python?程序靈活地調用C程序。這意味著可以根據需要給Python?程序添加功能,或者在其他環境系統中使用Python?。例如,將Python?與C或者C++?寫成的庫文件混合起來,使Python?成為一個前端語言和定制工具。就像之前我們所提到過的那樣,這使Python?成為一個很好的快速原型工具;首先出于開發速度的考慮,系統可以先使用Python?實現,之后轉移至C,根據不同時期性能的需要逐步實現系統。?
6、使用簡單?
運行Python?程序,只需要簡單地鍵入Python?程序并運行就可以了。不需要其他語言(例如,C或C++?)所必須的編譯和鏈接等中間步驟。Python?可立即執行程序,這形成了一種交互式編程體驗和不同情況下快速調整的能力,往往在修改代碼后能立即看到程序改變后的效果。?
當然,開發周期短僅僅是Python?易用性的一方面的體現。Python?提供了簡潔的語法和強大的內置工具。實際上,Python?曾有種說法叫做"可執行的偽代碼"。由于它減少了其他工具常見的復雜性,當實現相同的功能時,用Python?程序比采用C、C++?和Java?編寫的程序更為簡單、小巧,也更靈活。?
7、Python?是工程,不是藝術?
當Python?于20?世紀90?年代初期出現在軟件舞臺上時,曾經引發其擁護者和另一個受歡迎腳本語言Perl?的擁護者之間的沖突,但現今已成為經典的爭論。我們認為今天這種爭論令人厭倦,也沒有根據,開發人員都很聰明,可以找到他們自己的結論。然而,這是我在培訓課程上時常被問到的問題之一,所以在此對這個話題說幾句話,似乎是合適的。?
故事是這樣的:你可以用Python?做到一切用Perl?能做到的事,但是,做好之后,還可以閱讀自己的程序代碼。就是因為這樣,兩者的領域大部分重疊,但是,Python?更專注于產生可讀性的代碼。就大多數人而言,Python?強化了可讀性,轉換為了代碼可重用性和可維護性,使得Python?更適合用于不是寫一次就丟掉的程序。Perl?程序代碼很容易寫,但是很難讀。由于多數軟件在最初的創建后都有較長的生命周期,所以很多人認為Python?是一種更有效的工具。?
這個故事反應出兩個語言的設計者的背景,并體現出了人們選擇使用Python?的一些主要原因。Python?的創立者所受的是數學家的訓練,因此,他創造出來的語言具有高度的統一性,其語法和工具集都相當一致。再者,就像數學一樣,其設計也具有正交性(orthogonal?),也就是這門語言大多數組成部分都遵循一小組核心概念。例如,一旦掌握Python?的多態,剩下的就只是細節而已。?
與之相對比,Perl?語言的創立者是語言學家,而其設計反應了這種傳統。Perl?中,相同任務有很多方式可以完成,并且語言材料的交互對背景環境敏感,有時還有相當微妙的方式,就像自然語言那樣。就像著名的Perl?所說的格言:"完成的方法不止一種。"有了這種設計,Perl?語言及其用戶社群在編寫代碼時,就一直在鼓勵表達式的自由化。一個人的Perl?代碼可能和另一個人的完全不同。事實上,編寫獨特、充滿技巧性的代碼,常常是Perl?用戶之間的驕傲來源。?
但是,任何做過任何實質性的代碼維護工作的人,應該都可以證實,表達式自由度是很棒的藝術,但是,對工程來說就令人厭惡了。在工程世界中,我們需要最小化功能集和可預測性。在工程世界中,表達式自由度會造成維護的噩夢。不止一位Perl?用戶向我們透漏過,太過于自由的結果通常就是程序很容易重頭寫起,但修改起來就不是那么容易了。?
考慮一下:當人們在作畫或雕塑時,他們是為自己做,為了純粹美學考慮。其他人日后去修改圖畫或雕像的可能性很低。這是藝術和工程之間關鍵的差異。當人們在編寫軟件時,他們不是為自己寫。事實上,他們甚至不是專門為計算機寫的。而實際上,優秀的程序員知道,代碼是為下一個會閱讀它而進行維護或重用的人寫的。如果那個人無法理解代碼,在現實的開發場景中,就毫無用處了。?
這就是很多人認為Python?最有別于Perl?這類描述語言的地方。因為Python?的語法模型幾乎會強迫用戶編寫可讀的代碼,所以Python?程序會引導他們往完整的軟件開發循環流程前進。此外,因為Python?強調了諸如有限互動、統一性、規則性以及一致性這些概念,因此,會更進一步促進代碼在首次編寫后能夠長期使用。?
長期以來,Python?本身專注于代碼質量,提高了程序員的生產力,以及程序員的滿意度。Python?程序員也變得富有創意,以后就知道,語言本身的確對某些任務提供了多種解決辦法。不過,本質上,Python?鼓勵優秀的工程的方式,是其他腳本語言通常所不具備的。?
至少,這是許多采用Python?的人之間所具有的共識。當然,你應該要自行判斷這類說法,也就是通過了解Python?提供了什么給你。為了幫助你們入門,讓我們進行下一章的學習吧。?
8、簡單易學?
這一部分引出了本書的重點:相對于其他編程語言,Python?語言的核心是驚人的簡單易學。實際上,你可以在幾天內(如果你是有經驗的程序員,或許只需要幾個小時)寫出不錯的Python?代碼。這對于那些想學習語言可以在工作中應用的專業人員來說是一個好消息,同樣對于那些使用Python?進行定制或控制系統的終端用戶來說也是一個好消息。如今,許多系統依賴于終端用戶可以很快地學會Python?以便定制其代碼的外圍工具,從而提供較少的支持甚至不提供支持。盡管Python?還是有很多高級編程工具,但不論對初學者還是行家高手來說,Python?的核心語言仍是相當簡單的。?
名字來源于?Monty?Python?
Python?名字的來源這不算是一項技術,但是,這似乎是令人很驚訝、保護得很好的秘密,而我們希望把它全盤托出。盡管Python?世界中都是蟒蛇的圖標,但事實是,Python?創立者Guido?van?Rossum?是以BBC?喜劇Monty?Python's?Flying?Circus?來命名的。他是Monty?Python?的大影迷,而很多軟件開發人員也是(事實上,這兩個領域似乎有種對稱)。?
這給?Python?代碼的例子加入一種幽默的特質。比如,一般來說,傳統常規的變量名為"foo?"和"bar?",在Python?的世界中變成了"spam?"和"eggs?"。而有時出現的"Brian?"、"ni?"、"shrubbery?"等也是這樣來的。這種方式甚至很大程度上影響了Python?社區:Python?會議上的演講往往叫做"The?Spanish?Inquisition?"。?
當然,如果你熟悉這個幽默劇的話,所有這些你都會覺得很有趣,否則就沒那么有意思了。你沒有必要為了理解引自?Monty?Python?(也許本書中你就會找到)的例子而刻意去熟悉這一串劇情,但是至少你現在應該知道它們的來源。?
Python官網: http://www.python.org/
1、面向對象?
從根本上講,Python?是一種面向對象的語言。它的類模塊支持多態、操作符重載和多重繼承等高級概念,并且以Python?特有的簡潔的語法和類型,OOP?十分易于使用。事實上,即使你不懂這些術語,仍會發現學習Python?比學習其他OOP?語言要容易得多。?
除了作為一種強大的代碼構建和重用手段以外,Python?的OOP?特性使它成為面向對象系統語言如C++?和Java?的理想腳本工具。例如,通過適當的粘接代碼,Python?程序可以對C++?、Java?和C#?的類進行子類的定制。?
OOP?是Python?的一個選擇而已,這一點非常重要。不必強迫自己立馬成為一個面向對象高手,你同樣可以繼續深入學習。就像C++?一樣,Python?既支持面向對象編程也支持面向過程編程的模式。如果條件允許的話,其面向對象的工具即刻生效。這對處于預先設計階段的策略開發模式十分有用。?
2、免費?
Python?的使用和分發是完全免費的。就像其他的開源軟件一樣,例如,Tcl?、Perl?、Linux?和Apache?。你可以從Internet?上免費獲得Python?系統的源代碼。復制Python?,將其嵌入你的系統或者隨產品一起發布都沒有任何限制。實際上,如果你愿意的話,甚至可以銷售它的源代碼。?
但請別誤會:"免費"并不代表"?無支持"。恰恰相反,Python?的在線社區對用戶需求的響應和商業軟件一樣快。而且,由于Python?完全開放源代碼,提高了開發者的實力,并產生了一個很大的專家團隊。盡管學習研究或改變一個程序語言的實現并不是對每一個人來說都那么有趣,但是當你知道還有源代碼作為最終的幫助和無盡的文檔資源是多么的令人欣慰。你不需要去依賴商業廠商。?
Python?的開發是由社區驅動的,是Internet?大范圍的協同合作努力的結果。這個團體包括Python?的創始者Guido?van?Rossum:Python?社區內公認的"終身的慈善獨裁者"[Benevolent?Dictator?for?Life?(BDFL)?]?。Python?語言的改變必須遵循一套規范的有約束力的程序(稱作PEP?流程),并需要經過規范的測試系統和BDFL?進行徹底檢查。值得慶幸的是,正是這樣使得Python?相對于其他語言可以保守地持續改進。?
3、可移植?
Python?的標準實現是由可移植的ANSI?C?編寫的,可以在目前所有的主流平臺上編譯和運行。例如,如今從PDA?到超級計算機,到處可以見到Python?在運行。Python?可以在下列平臺上運行(這里只是部分列表):?
Linux?和UNIX?系統。?
微軟Windows?和DOS?(所有版本)。?
Mac?OS?(包括OS?X?和Classic?)。?
BeOS?、OS/2?、VMS?和QNX?。?
實時操作系統,例如,VxWorks?。?
Cray?超級計算機和IBM?大型機。?
運行Palm?OS?、PocketPC?和Linux?的PDA?。?
運行Windows?Mobile?和Symbian?OS?的移動電話。?
游戲終端和iPod?。?
還有更多。?
除了語言解釋器本身以外,Python?發行時自帶的標準庫和模塊在實現上也都盡可能地考慮到了跨平臺的移植性。此外,Python?程序自動編譯成可移植的字節碼,這些字節碼在已安裝兼容版本Python?的平臺上運行的結果都是相同的。?
這些意味著Python?程序的核心語言和標準庫可以在Linux?、Windows?和其他帶有Python?解釋器的平臺無差別的運行。大多數Python?外圍接口都有平臺相關的擴展(例如,COM?支持Windows?),但是核心語言和庫在任何平臺都一樣。就像之前我們提到的那樣,Python?還包含了一個叫做Tkinter?的Tk?GUI?工具包,它可以使Python?程序實現功能完整的無需做任何修改即可在所有主流GUI?平臺運行的用戶圖形界面。?
4、功能強大?
從特性的觀點來看,Python?是一個混合體。它豐富的工具集使它介于傳統的腳本語言(例如,Tcl?、Scheme?和Perl?)和系統語言(例如,C、C++?和Java)?之間。Python?提供了所有腳本語言的簡單和易用性,并且具有在編譯語言中才能找到的高級軟件工程工具。不像其他腳本語言,這種結合使Python?在長期大型的開發項目中十分有用。下面是一些Python?工具箱中的工具簡介。?
動態類型Python?在運行過程中隨時跟蹤對象的種類,不需要代碼中關于復雜的類型和大小的聲明。事實上,你將在第6章中看到,Python?中沒有類型或變量聲明這回事。因為Python?代碼不是約束數據的類型,它往往自動地應用了一種廣義上的對象。?
自動內存管理Python?自動進行對象分配,當對象不再使用時將自動撤銷對象("垃圾回收"),當需要時自動擴展或收縮。Python?能夠代替你進行底層的內存管理。?
大型程序支持為了能夠建立更大規模的系統,Python?包含了模塊、類和異常等工具。這些工具允許你組織系統為組件,使用OOP?重用并定制代碼,并以一種優雅的方式處理事件和錯誤。?
內置對象類型Python?提供了常用的數據結構作為語言的基本組成部分。例如,列表(list?)、字典(dictionary?)、字符串(string?)。我們將會看到,它們靈活并易于使用。例如,內置對象可以根據需求擴展或收縮,可以任意地組織復雜的信息等。?
內置工具為了對以上對象類型進行處理,Python?自帶了許多強大的標準操作,包括合并(concatenation?)、分片(slice?)、排序(sort?)和映射(mapping?)等。?
庫工具為了完成更多特定的任務,Python?預置了許多預編碼的庫工具,從正則表達式匹配到網絡都支持。Python?的庫工具在很多應用級的操作中發揮作用。?
第三方工具由于?Python?是開放源代碼的,它鼓勵開發者提供Python?內置工具之外的預編碼工具。從網絡上,可以找到COM?、圖像處理、CORBA?ORB?、XML?、數據庫等很多免費的支持工具。?
除了這一系列的Python?工具外,Python?保持了相當簡潔的語法和設計。綜合這一切得到的就是一個具有腳本語言所有可用性的強大編程工具。?
5、可混合?
Python?程序可以以多種方式輕易地與其他語言編寫的組件"粘接"在一起。例如,Python?的C語言API?可以幫助Python?程序靈活地調用C程序。這意味著可以根據需要給Python?程序添加功能,或者在其他環境系統中使用Python?。例如,將Python?與C或者C++?寫成的庫文件混合起來,使Python?成為一個前端語言和定制工具。就像之前我們所提到過的那樣,這使Python?成為一個很好的快速原型工具;首先出于開發速度的考慮,系統可以先使用Python?實現,之后轉移至C,根據不同時期性能的需要逐步實現系統。?
6、使用簡單?
運行Python?程序,只需要簡單地鍵入Python?程序并運行就可以了。不需要其他語言(例如,C或C++?)所必須的編譯和鏈接等中間步驟。Python?可立即執行程序,這形成了一種交互式編程體驗和不同情況下快速調整的能力,往往在修改代碼后能立即看到程序改變后的效果。?
當然,開發周期短僅僅是Python?易用性的一方面的體現。Python?提供了簡潔的語法和強大的內置工具。實際上,Python?曾有種說法叫做"可執行的偽代碼"。由于它減少了其他工具常見的復雜性,當實現相同的功能時,用Python?程序比采用C、C++?和Java?編寫的程序更為簡單、小巧,也更靈活。?
7、Python?是工程,不是藝術?
當Python?于20?世紀90?年代初期出現在軟件舞臺上時,曾經引發其擁護者和另一個受歡迎腳本語言Perl?的擁護者之間的沖突,但現今已成為經典的爭論。我們認為今天這種爭論令人厭倦,也沒有根據,開發人員都很聰明,可以找到他們自己的結論。然而,這是我在培訓課程上時常被問到的問題之一,所以在此對這個話題說幾句話,似乎是合適的。?
故事是這樣的:你可以用Python?做到一切用Perl?能做到的事,但是,做好之后,還可以閱讀自己的程序代碼。就是因為這樣,兩者的領域大部分重疊,但是,Python?更專注于產生可讀性的代碼。就大多數人而言,Python?強化了可讀性,轉換為了代碼可重用性和可維護性,使得Python?更適合用于不是寫一次就丟掉的程序。Perl?程序代碼很容易寫,但是很難讀。由于多數軟件在最初的創建后都有較長的生命周期,所以很多人認為Python?是一種更有效的工具。?
這個故事反應出兩個語言的設計者的背景,并體現出了人們選擇使用Python?的一些主要原因。Python?的創立者所受的是數學家的訓練,因此,他創造出來的語言具有高度的統一性,其語法和工具集都相當一致。再者,就像數學一樣,其設計也具有正交性(orthogonal?),也就是這門語言大多數組成部分都遵循一小組核心概念。例如,一旦掌握Python?的多態,剩下的就只是細節而已。?
與之相對比,Perl?語言的創立者是語言學家,而其設計反應了這種傳統。Perl?中,相同任務有很多方式可以完成,并且語言材料的交互對背景環境敏感,有時還有相當微妙的方式,就像自然語言那樣。就像著名的Perl?所說的格言:"完成的方法不止一種。"有了這種設計,Perl?語言及其用戶社群在編寫代碼時,就一直在鼓勵表達式的自由化。一個人的Perl?代碼可能和另一個人的完全不同。事實上,編寫獨特、充滿技巧性的代碼,常常是Perl?用戶之間的驕傲來源。?
但是,任何做過任何實質性的代碼維護工作的人,應該都可以證實,表達式自由度是很棒的藝術,但是,對工程來說就令人厭惡了。在工程世界中,我們需要最小化功能集和可預測性。在工程世界中,表達式自由度會造成維護的噩夢。不止一位Perl?用戶向我們透漏過,太過于自由的結果通常就是程序很容易重頭寫起,但修改起來就不是那么容易了。?
考慮一下:當人們在作畫或雕塑時,他們是為自己做,為了純粹美學考慮。其他人日后去修改圖畫或雕像的可能性很低。這是藝術和工程之間關鍵的差異。當人們在編寫軟件時,他們不是為自己寫。事實上,他們甚至不是專門為計算機寫的。而實際上,優秀的程序員知道,代碼是為下一個會閱讀它而進行維護或重用的人寫的。如果那個人無法理解代碼,在現實的開發場景中,就毫無用處了。?
這就是很多人認為Python?最有別于Perl?這類描述語言的地方。因為Python?的語法模型幾乎會強迫用戶編寫可讀的代碼,所以Python?程序會引導他們往完整的軟件開發循環流程前進。此外,因為Python?強調了諸如有限互動、統一性、規則性以及一致性這些概念,因此,會更進一步促進代碼在首次編寫后能夠長期使用。?
長期以來,Python?本身專注于代碼質量,提高了程序員的生產力,以及程序員的滿意度。Python?程序員也變得富有創意,以后就知道,語言本身的確對某些任務提供了多種解決辦法。不過,本質上,Python?鼓勵優秀的工程的方式,是其他腳本語言通常所不具備的。?
至少,這是許多采用Python?的人之間所具有的共識。當然,你應該要自行判斷這類說法,也就是通過了解Python?提供了什么給你。為了幫助你們入門,讓我們進行下一章的學習吧。?
8、簡單易學?
這一部分引出了本書的重點:相對于其他編程語言,Python?語言的核心是驚人的簡單易學。實際上,你可以在幾天內(如果你是有經驗的程序員,或許只需要幾個小時)寫出不錯的Python?代碼。這對于那些想學習語言可以在工作中應用的專業人員來說是一個好消息,同樣對于那些使用Python?進行定制或控制系統的終端用戶來說也是一個好消息。如今,許多系統依賴于終端用戶可以很快地學會Python?以便定制其代碼的外圍工具,從而提供較少的支持甚至不提供支持。盡管Python?還是有很多高級編程工具,但不論對初學者還是行家高手來說,Python?的核心語言仍是相當簡單的。?
名字來源于?Monty?Python?
Python?名字的來源這不算是一項技術,但是,這似乎是令人很驚訝、保護得很好的秘密,而我們希望把它全盤托出。盡管Python?世界中都是蟒蛇的圖標,但事實是,Python?創立者Guido?van?Rossum?是以BBC?喜劇Monty?Python's?Flying?Circus?來命名的。他是Monty?Python?的大影迷,而很多軟件開發人員也是(事實上,這兩個領域似乎有種對稱)。?
這給?Python?代碼的例子加入一種幽默的特質。比如,一般來說,傳統常規的變量名為"foo?"和"bar?",在Python?的世界中變成了"spam?"和"eggs?"。而有時出現的"Brian?"、"ni?"、"shrubbery?"等也是這樣來的。這種方式甚至很大程度上影響了Python?社區:Python?會議上的演講往往叫做"The?Spanish?Inquisition?"。?
當然,如果你熟悉這個幽默劇的話,所有這些你都會覺得很有趣,否則就沒那么有意思了。你沒有必要為了理解引自?Monty?Python?(也許本書中你就會找到)的例子而刻意去熟悉這一串劇情,但是至少你現在應該知道它們的來源。?
Python官網: http://www.python.org/