Python(計算機程序設計語言)
Python(英國發(fā)音:/?pa?θ?n/ 美國發(fā)音:/?pa?θɑ?n/), 是一種面向?qū)ο蟮慕忉屝陀嬎銠C程序設計語言,由荷蘭人Guido van Rossum于1989年發(fā)明迷捧,第一個公開發(fā)行版發(fā)行于1991年琼富。
Python是純粹的自由軟件思灰,源代碼和解釋器CPython遵循GPL(GNUGeneral Public License)協(xié)議祷舀。Python語法簡潔清晰本涕,特色之一是強制用空白符(white space)作為語句縮進操漠。
以下簡介來自廖雪峰的網(wǎng)站收津,這是我學習python的時候經(jīng)常逛的網(wǎng)站,廖大大講的真心不錯浊伙。有條件的可以去支持贊助廖大大下撞秋。
Python是著名的“龜叔”Guido van Rossum在1989年圣誕節(jié)期間,為了打發(fā)無聊的圣誕節(jié)而編寫的一個編程語言嚣鄙。
現(xiàn)在吻贿,全世界差不多有600多種編程語言,但流行的編程語言也就那么20來種哑子。如果你聽說過TIOBE排行榜舅列,你就能知道編程語言的大致流行程度。這是最近10年最常用的10種編程語言的變化圖:
總的來說卧蜓,這幾種編程語言各有千秋帐要。C語言是可以用來編寫操作系統(tǒng)的貼近硬件的語言,所以弥奸,C語言適合開發(fā)那些追求運行速度榨惠、充分發(fā)揮硬件性能的程序。而Python是用來編寫應用程序的高級編程語言盛霎。
當你用一種語言開始作真正的軟件開發(fā)時赠橙,你除了編寫代碼外,還需要很多基本的已經(jīng)寫好的現(xiàn)成的東西愤炸,來幫助你加快開發(fā)進度简烤。比如說,要編寫一個電子郵件客戶端摇幻,如果先從最底層開始編寫網(wǎng)絡協(xié)議相關的代碼横侦,那估計一年半載也開發(fā)不出來。高級編程語言通常都會提供一個比較完善的基礎代碼庫绰姻,讓你能直接調(diào)用枉侧,比如,針對電子郵件協(xié)議的SMTP庫狂芋,針對桌面環(huán)境的GUI庫榨馁,在這些已有的代碼庫的基礎上開發(fā),一個電子郵件客戶端幾天就能開發(fā)出來帜矾。
Python就為我們提供了非常完善的基礎代碼庫翼虫,覆蓋了網(wǎng)絡屑柔、文件、GUI珍剑、數(shù)據(jù)庫掸宛、文本等大量內(nèi)容,被形象地稱作“內(nèi)置電池(batteries included)”招拙。用Python開發(fā)唧瘾,許多功能不必從零編寫,直接使用現(xiàn)成的即可别凤。
除了內(nèi)置的庫外饰序,Python還有大量的第三方庫,也就是別人開發(fā)的规哪,供你直接使用的東西求豫。當然,如果你開發(fā)的代碼通過很好的封裝诉稍,也可以作為第三方庫給別人使用蝠嘉。
許多大型網(wǎng)站就是用Python開發(fā)的,例如YouTube均唉、Instagram,還有國內(nèi)的豆瓣肚菠。很多大公司舔箭,包括Google、Yahoo等蚊逢,甚至NASA(美國航空航天局)都大量地使用Python层扶。
龜叔給Python的定位是“優(yōu)雅”、“明確”烙荷、“簡單”镜会,所以Python程序看上去總是簡單易懂,初學者學Python终抽,不但入門容易戳表,而且將來深入下去,可以編寫那些非常非常復雜的程序昼伴。
總的來說匾旭,Python的哲學就是簡單優(yōu)雅,盡量寫容易看明白的代碼圃郊,盡量寫少的代碼价涝。如果一個資深程序員向你炫耀他寫的晦澀難懂、動不動就幾萬行的代碼持舆,你可以盡情地嘲笑他色瘩。
那Python適合開發(fā)哪些類型的應用呢伪窖?
首選是網(wǎng)絡應用,包括網(wǎng)站居兆、后臺服務等等覆山;
其次是許多日常需要的小工具,包括系統(tǒng)管理員需要的腳本任務等等史辙;
另外就是把其他語言開發(fā)的程序再包裝起來汹买,方便使用。
最后說說Python的缺點聊倔。
任何編程語言都有缺點晦毙,Python也不例外。優(yōu)點說過了耙蔑,那Python有哪些缺點呢见妒?
第一個缺點就是運行速度慢,和C程序相比非常慢甸陌,因為Python是解釋型語言须揣,你的代碼在執(zhí)行時會一行一行地翻譯成CPU能理解的機器碼,這個翻譯過程非常耗時钱豁,所以很慢耻卡。而C程序是運行前直接編譯成CPU能執(zhí)行的機器碼,所以非成撸快卵酪。
但是大量的應用程序不需要這么快的運行速度,因為用戶根本感覺不出來谤碳。例如開發(fā)一個下載MP3的網(wǎng)絡應用程序溃卡,C程序的運行時間需要0.001秒,而Python程序的運行時間需要0.1秒蜒简,慢了100倍瘸羡,但由于網(wǎng)絡更慢,需要等待1秒搓茬,你想犹赖,用戶能感覺到1.001秒和1.1秒的區(qū)別嗎?這就好比F1賽車和普通的出租車在北京三環(huán)路上行駛的道理一樣卷仑,雖然F1賽車理論時速高達400公里冷尉,但由于三環(huán)路堵車的時速只有20公里,因此系枪,作為乘客雀哨,你感覺的時速永遠是20公里。
第二個缺點就是代碼不能加密。如果要發(fā)布你的Python程序雾棺,實際上就是發(fā)布源代碼膊夹,這一點跟C語言不同,C語言不用發(fā)布源代碼捌浩,只需要把編譯后的機器碼(也就是你在Windows上常見的xxx.exe文件)發(fā)布出去放刨。要從機器碼反推出C代碼是不可能的,所以尸饺,凡是編譯型的語言进统,都沒有這個問題,而解釋型的語言浪听,則必須把源碼發(fā)布出去螟碎。
這個缺點僅限于你要編寫的軟件需要賣給別人掙錢的時候。好消息是目前的互聯(lián)網(wǎng)時代迹栓,靠賣軟件授權的商業(yè)模式越來越少了掉分,靠網(wǎng)站和移動應用賣服務的模式越來越多了,后一種模式不需要把源碼給別人克伊。
再說了酥郭,現(xiàn)在如火如荼的開源運動和互聯(lián)網(wǎng)自由開放的精神是一致的,互聯(lián)網(wǎng)上有無數(shù)非常優(yōu)秀的像Linux一樣的開源代碼愿吹,我們千萬不要高估自己寫的代碼真的有非常大的“商業(yè)價值”不从。那些大公司的代碼不愿意開放的更重要的原因是代碼寫得太爛了,一旦開源犁跪,就沒人敢用他們的產(chǎn)品了椿息。
當然,Python還有其他若干小缺點耘拇,請自行忽略撵颊,就不一一列舉了