Python-背景-認(rèn)識(shí)python

python是什么編程語言

編程語言主要從以下幾個(gè)角度為進(jìn)行分類羽嫡,編譯型和解釋型谨湘、靜態(tài)語言和動(dòng)態(tài)語言、強(qiáng)類型定義語言和弱類型定義語言碱屁,每個(gè)分類代表什么意思呢,我們一起來看一下蛾找。

1. 編譯型與解釋型娩脾。

編譯器是把源程序的每一條語句都編譯成機(jī)器語言,并保存成二進(jìn)制文件,這樣運(yùn)行時(shí)計(jì)算機(jī)可以直接以機(jī)器語言來運(yùn)行此程序,速度很快;

解釋器則是只在執(zhí)行程序時(shí),才一條一條的解釋成機(jī)器語言給計(jì)算機(jī)來執(zhí)行,所以運(yùn)行速度是不如編譯后的程序運(yùn)行的快的.

這是因?yàn)橛?jì)算機(jī)不能直接認(rèn)識(shí)并執(zhí)行我們寫的語句,它只能認(rèn)識(shí)機(jī)器語言(是二進(jìn)制的形式)

image
image

編譯型
優(yōu)點(diǎn):編譯器一般會(huì)有預(yù)編譯的過程對(duì)代碼進(jìn)行優(yōu)化。因?yàn)榫幾g只做一次打毛,運(yùn)行時(shí)不需要編譯柿赊,所以編譯型語言的程序執(zhí)行效率高』猛鳎可以脫離語言環(huán)境獨(dú)立運(yùn)行碰声。
缺點(diǎn):編譯之后如果需要修改就需要整個(gè)模塊重新編譯。編譯的時(shí)候根據(jù)對(duì)應(yīng)的運(yùn)行環(huán)境生成機(jī)器碼熬甫,不同的操作系統(tǒng)之間移植就會(huì)有問題胰挑,需要根據(jù)運(yùn)行的操作系統(tǒng)環(huán)境編譯不同的可執(zhí)行文件。

解釋型
優(yōu)點(diǎn):有良好的平臺(tái)兼容性罗珍,在任何環(huán)境中都可以運(yùn)行洽腺,前提是安裝了解釋器(虛擬機(jī))。靈活覆旱,修改代碼的時(shí)候直接修改就可以蘸朋,可以快速部署,不用停機(jī)維護(hù)扣唱。

缺點(diǎn):每次運(yùn)行的時(shí)候都要解釋一遍藕坯,性能上不如編譯型語言。

2.動(dòng)態(tài)語言和靜態(tài)語言
通常我們所說的動(dòng)態(tài)語言噪沙、靜態(tài)語言是指動(dòng)態(tài)類型語言和靜態(tài)類型語言炼彪。

(1)動(dòng)態(tài)類型語言:動(dòng)態(tài)類型語言是指在運(yùn)行期間才去做數(shù)據(jù)類型檢查的語言,也就是說正歼,在用動(dòng)態(tài)類型的語言編程時(shí)辐马,永遠(yuǎn)也不用給任何變量指定數(shù)據(jù)類型,該語言會(huì)在你第一次賦值給變量時(shí)局义,在內(nèi)部將數(shù)據(jù)類型記錄下來喜爷。Python和Ruby就是一種典型的動(dòng)態(tài)類型語言冗疮,其他的各種腳本語言如VBScript也多少屬于動(dòng)態(tài)類型語言。

(2)靜態(tài)類型語言:靜態(tài)類型語言與動(dòng)態(tài)類型語言剛好相反檩帐,它的數(shù)據(jù)類型是在編譯其間檢查的术幔,也就是說在寫程序時(shí)要聲明所有變量的數(shù)據(jù)類型,C/C++是靜態(tài)類型語言的典型代表湃密,其他的靜態(tài)類型語言還有C#诅挑、JAVA等。

3.強(qiáng)類型定義語言和弱類型定義語言

(1)強(qiáng)類型定義語言:強(qiáng)制數(shù)據(jù)類型定義的語言泛源。也就是說拔妥,一旦一個(gè)變量被指定了某個(gè)數(shù)據(jù)類型,如果不經(jīng)過強(qiáng)制轉(zhuǎn)換俩由,那么它就永遠(yuǎn)是這個(gè)數(shù)據(jù)類型了毒嫡。舉個(gè)例子:如果你定義了一個(gè)整型變量a,那么程序根本不可能將a當(dāng)作字符串類型處理。強(qiáng)類型定義語言是類型安全的語言幻梯。

(2)弱類型定義語言:數(shù)據(jù)類型可以被忽略的語言兜畸。它與強(qiáng)類型定義語言相反, 一個(gè)變量可以賦不同數(shù)據(jù)類型的值。

強(qiáng)類型定義語言在速度上可能略遜色于弱類型定義語言碘梢,但是強(qiáng)類型定義語言帶來的嚴(yán)謹(jǐn)性能夠有效的避免許多錯(cuò)誤咬摇。另外,“這門語言是不是動(dòng)態(tài)語言”與“這門語言是否類型安全”之間是完全沒有聯(lián)系的煞躬!
例如:Python是動(dòng)態(tài)語言肛鹏,是強(qiáng)類型定義語言(類型安全的語言); VBScript是動(dòng)態(tài)語言,是弱類型定義語言(類型不安全的語言); JAVA是靜態(tài)語言恩沛,是強(qiáng)類型定義語言(類型安全的語言)在扰。

通過上面這些介紹,我們可以得出雷客,python是一門動(dòng)態(tài)解釋性的強(qiáng)類型定義語言芒珠。

python的種類

CPython

當(dāng)我們從Python官方網(wǎng)站下載并安裝好Python 3.6后,我們就直接獲得了一個(gè)官方版本的解釋器:CPython搅裙。這個(gè)解釋器是用C語言開發(fā)的皱卓,所以叫CPython。在命令行下運(yùn)行python就是啟動(dòng)CPython解釋器部逮。

CPython是使用最廣的Python解釋器娜汁。教程的所有代碼也都在CPython下執(zhí)行。

IPython

IPython是基于CPython之上的一個(gè)交互式解釋器兄朋,也就是說掐禁,IPython只是在交互方式上有所增強(qiáng),但是執(zhí)行Python代碼的功能和CPython是完全一樣的。好比很多國(guó)產(chǎn)瀏覽器雖然外觀不同穆桂,但內(nèi)核其實(shí)都是調(diào)用了IE宫盔。

CPython用>>>作為提示符,而IPython用In [``序號(hào)``]:作為提示符享完。

PyPy

PyPy是另一個(gè)Python解釋器,它的目標(biāo)是執(zhí)行速度有额。PyPy采用JIT技術(shù)般又,對(duì)Python代碼進(jìn)行動(dòng)態(tài)編譯(注意不是解釋),所以可以顯著提高Python代碼的執(zhí)行速度巍佑。

絕大部分Python代碼都可以在PyPy下運(yùn)行茴迁,但是PyPy和CPython有一些是不同的,這就導(dǎo)致相同的Python代碼在兩種解釋器下執(zhí)行可能會(huì)有不同的結(jié)果萤衰。如果你的代碼要放到PyPy下執(zhí)行堕义,就需要了解PyPy和CPython的不同點(diǎn)

Jython

Jython是運(yùn)行在Java平臺(tái)上的Python解釋器脆栋,可以直接把Python代碼編譯成Java字節(jié)碼執(zhí)行倦卖。

IronPython

IronPython和Jython類似,只不過IronPython是運(yùn)行在微軟.Net平臺(tái)上的Python解釋器椿争,可以直接把Python代碼編譯成.Net的字節(jié)碼怕膛。

小結(jié):

Python的解釋器很多,但使用最廣泛的還是CPython秦踪。如果要和Java或.Net平臺(tái)交互褐捻,最好的辦法不是用Jython或IronPython,而是通過網(wǎng)絡(luò)調(diào)用來交互椅邓,確保各程序之間的獨(dú)立性柠逞。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市景馁,隨后出現(xiàn)的幾起案子板壮,更是在濱河造成了極大的恐慌,老刑警劉巖裁僧,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件个束,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡聊疲,警方通過查閱死者的電腦和手機(jī)茬底,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來获洲,“玉大人阱表,你說我怎么就攤上這事。” “怎么了最爬?”我有些...
    開封第一講書人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵涉馁,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我爱致,道長(zhǎng)烤送,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任糠悯,我火速辦了婚禮帮坚,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘互艾。我一直安慰自己试和,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開白布纫普。 她就那樣靜靜地躺著阅悍,像睡著了一般。 火紅的嫁衣襯著肌膚如雪昨稼。 梳的紋絲不亂的頭發(fā)上节视,一...
    開封第一講書人閱讀 48,970評(píng)論 1 284
  • 那天,我揣著相機(jī)與錄音悦昵,去河邊找鬼肴茄。 笑死,一個(gè)胖子當(dāng)著我的面吹牛但指,可吹牛的內(nèi)容都是我干的寡痰。 我是一名探鬼主播,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼棋凳,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼拦坠!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起剩岳,我...
    開封第一講書人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤贞滨,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后拍棕,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體晓铆,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年绰播,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了骄噪。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡蠢箩,死狀恐怖链蕊,靈堂內(nèi)的尸體忽然破棺而出事甜,到底是詐尸還是另有隱情,我是刑警寧澤滔韵,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布逻谦,位于F島的核電站,受9級(jí)特大地震影響陪蜻,放射性物質(zhì)發(fā)生泄漏邦马。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一囱皿、第九天 我趴在偏房一處隱蔽的房頂上張望勇婴。 院中可真熱鬧,春花似錦嘱腥、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至础米,卻和暖如春分苇,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背屁桑。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來泰國(guó)打工医寿, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蘑斧。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓靖秩,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親竖瘾。 傳聞我的和親對(duì)象是個(gè)殘疾皇子沟突,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 目前Python主要應(yīng)用領(lǐng)域: 云計(jì)算: 云計(jì)算最火的語言, 典型應(yīng)用OpenStack WEB開發(fā): 眾多優(yōu)秀的...
    Clemente閱讀 967評(píng)論 0 1
  • 一捕传、Python介紹 Python的創(chuàng)始人為吉多·范羅蘇姆(Guido van Rossum)惠拭。1989年的圣誕節(jié)...
    EC君_王磊閱讀 65,477評(píng)論 3 33
  • Python介紹 1职辅、python的出生與應(yīng)用 python的創(chuàng)始人為吉多·范羅蘇姆(Guido van Ross...
    go以恒閱讀 1,748評(píng)論 0 11
  • 1,python的出生與應(yīng)用 python的創(chuàng)始人為吉多·范羅蘇姆(Guido van Rossum)聂示。1989年...
    橡皮24閱讀 429評(píng)論 0 1
  • pypy支持的擴(kuò)展模塊(對(duì)應(yīng)Python/Modules/中的模塊) pypy支持的內(nèi)建模塊:__builtin_...
    JianMing閱讀 4,743評(píng)論 0 0