Python翻譯成漢語是蟒蛇的意思,并且Python的logo也是兩條纏繞在一起的蟒蛇的樣子竟坛,然而Python語言和蟒蛇實際上并沒有一毛錢關(guān)系。
Python語言是由荷蘭程序員Guido van Rossum惭等,江湖人稱“龜叔”褒纲,獨立開發(fā)完成初版的±嘁纾“龜叔”曾供職于google凌蔬,現(xiàn)任職于dropbox 。1989年圣誕節(jié)期間闯冷,在阿姆斯特丹砂心,為了打發(fā)圣誕節(jié)的無趣,決心開發(fā)一個新的腳本解釋語言蛇耀,作為ABC語言的一種繼承辩诞,然后他就這么做了,并實現(xiàn)了(大神的能力)纺涤。之所以選中Python作為該編程語言的名字拒啰,是因為他是一個叫Monty Python喜劇團體的愛好者表制,其本意并不是想選條蟒蛇解幼。
Python語言的特點
1 簡單易學帕棉、明確優(yōu)雅、開發(fā)速度快
- 簡單易學:與C和Java比衰抑,Python的學習成本和難度曲線不是低一點象迎,更適合新手入門,自底向上的技術(shù)攀爬路線呛踊。先訂個小目標爬個小山砾淌,然后再往更高的山峰前進。而不像C和JAVA光語言學習本身谭网,對于很多人來說就像珠穆朗瑪峰一樣高不可攀汪厨。
- 明確優(yōu)雅:Python的語法非常簡潔,代碼量少愉择,非常容易編寫劫乱,代碼的測試、重構(gòu)锥涕、維護等都非常容易衷戈。一個小小的腳本,用C可能需要1000行层坠,用JAVA可能幾百行殖妇,但是用Python往往只需要幾十行!
- 開發(fā)速度快:當前互聯(lián)網(wǎng)企業(yè)的生命線是什么破花?產(chǎn)品開發(fā)速度谦趣!如果你的開發(fā)速度不夠快疲吸,在你的產(chǎn)品推出之前別人家的產(chǎn)品已經(jīng)上線了,你也就沒有生存空間了前鹅,這里的真實例子數(shù)不勝數(shù)摘悴。那么,Python的開發(fā)速度說第二沒人敢稱第一!(不歡迎辯論_)
2 跨平臺舰绘、可移植蹂喻、可擴展、交互式除盏、解釋型叉橱、面向?qū)ο蟮膭討B(tài)語言
- 跨平臺:Python支持Windows挫以、Linux和MAC os等主流操作系統(tǒng)者蠕。
- 可移植:代碼通常不需要多少改動就能移植到別的平臺上使用。
- 可擴展:Python語言本身由C語言編寫而成的掐松,你完全可以在Python中嵌入C踱侣,從而提高代碼的運行速度和效率。你也可以使用C語言重寫Python的任何模塊大磺,從根本上改寫Python抡句,PyPy就是這么干的。
- 交互式:Python提供很好的人機交互界面杠愧,比如IDLE和IPython待榔。可以從終端輸入執(zhí)行代碼并獲得結(jié)果流济,互動的測試和調(diào)試代碼片斷锐锣。
- 解釋型:Python語言在執(zhí)行過程中由解釋器逐行分析,逐行運行并輸出結(jié)果绳瘟。
- 面向?qū)ο螅篜ython語言具備所有的面向?qū)ο筇匦院凸δ艿胥荆С只陬惖某绦蜷_發(fā)。
- 動態(tài)語言:在運行時可以改變其結(jié)構(gòu)糖声。例如新的函數(shù)斤彼、對象、甚至代碼可以被引進蘸泻,已有的函數(shù)可以被刪除或是其他結(jié)構(gòu)上的變化琉苇。動態(tài)語言非常具有活力。
3 “內(nèi)置電池”悦施,大量的標準庫和第三方庫
Python為我們提供了非常完善的基礎(chǔ)庫翁潘,覆蓋了系統(tǒng)、網(wǎng)絡(luò)歼争、文件拜马、GUI渗勘、數(shù)據(jù)庫、文本處理等方方面面俩莽,這些是隨同解釋器被默認安裝的旺坠,各平臺通用,你無需安裝第三方支持就可以完成大多數(shù)工作扮超,這一特點被形象地稱作“內(nèi)置電池(batteries included)”取刃。
在程序員界,有一句話叫做“不要重復(fù)造輪子”出刷。什么意思呢璧疗?就是說不要做重復(fù)的開發(fā)工作,如果對某個問題已經(jīng)有開源的解決方案或者說第三方庫馁龟,就不要自己去開發(fā)崩侠,直接用別人的就好。不要過分迷信自己的代碼能力坷檩,要知道却音,能作為標準庫被Python內(nèi)置,必然在可靠性和算法效率上達到了目前最高水平矢炼,能被廣泛使用的第三方庫系瓢,必然也是經(jīng)受了大量的應(yīng)用考驗。除非公司要求句灌,不要自己去開發(fā)夷陋,請使用現(xiàn)成的庫。那些造輪子的事情胰锌,就交給世界最頂尖的那一波程序員去干吧骗绕,沒有極致的思維和數(shù)學能力,想創(chuàng)造好用的輪子是很難的匕荸。
4 開源語言爹谭,發(fā)展動力巨大
Python是基于C語言編寫的,并且使用GPL開源協(xié)議榛搔,你可以免費獲取它的源代碼诺凡,進行學習、研究甚至改進践惑。眾人拾柴火焰高腹泌,有更多的人參與Python的開發(fā),促使它更好的發(fā)展尔觉,被更多的應(yīng)用凉袱,形成良性循環(huán)。Python為什么會越來越火就是因為它的開放性,自由性专甩,聚起了人氣钟鸵,形成了社區(qū),有很多人在其中做貢獻涤躲,用的人越來越多棺耍,自然就提高了市場占有率,企業(yè)种樱、公司蒙袍、廠家就不得不使用Python,提供的Python程序員崗位就越來越多嫩挤,這就是開源的力量害幅。
這里附帶跟大家說一個代碼封閉的問題。Python寫的源代碼通常是不加密的岂昭,如果要發(fā)布你的Python程序以现,實際上就是發(fā)布源代碼,這一點跟C語言不同佩抹,C語言不用發(fā)布源代碼叼风,只需要把編譯后的機器碼(也就是你在Windows上常見的xxx.exe文件)發(fā)布出去取董。要從機器碼反推出C代碼基本是不可能的棍苹,所以,凡是編譯型的語言茵汰,都沒有這個問題枢里,而解釋型的語言,則必須把源碼發(fā)布出去蹂午。如果你不想讓別人看到或抄襲你寫的python代碼怎么辦栏豺?使用類似py2exe的包裝工具,將python源碼轉(zhuǎn)換成一個類似于exe可執(zhí)行文件的形式豆胸,但這個也不是絕對保險奥洼,只是增加了反編譯的門檻和難度,對于有經(jīng)驗的人而言晚胡,一樣可以獲得你的源代碼灵奖。
你可能要問,我要通過寫代碼編軟件賣出去掙錢怎么辦估盘?少年瓷患!目前的互聯(lián)網(wǎng)時代,靠賣軟件授權(quán)的商業(yè)模式越來越少了遣妥,靠網(wǎng)站服務(wù)和移動應(yīng)用賣服務(wù)的模式越來越多了擅编,這種模式不需要把源碼給別人。再說了,現(xiàn)在如火如荼的開源運動和互聯(lián)網(wǎng)自由開放的精神是一致的爱态,互聯(lián)網(wǎng)上有無數(shù)非常優(yōu)秀的像Linux生態(tài)圈一樣的開源項目谭贪,我們千萬不要高估自己寫的代碼真的有非常大的“商業(yè)價值”。在Python的世界锦担,開源是王道故河,不要糾結(jié)你的代碼被抄襲模仿,而是盡量提高自己的水平和能力吆豹,這才是立身之本鱼的。
Python的應(yīng)用方向
- 1 常規(guī)軟件開發(fā)
- 科學計算
- 自動化運維
- 云計算
- WEB開發(fā)
- 網(wǎng)絡(luò)爬蟲
- 數(shù)據(jù)分析
- 人工智能
Python之禪
最后,讓我們以Python的官方格言痘煤,也就是俗稱的Python之禪來結(jié)束對Python的介紹凑阶。在Python的IDLE或者交互式解釋器中,輸入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!