文章目錄
-
- 本面試題題庫,由公号:非大學程式員 整理釋出
- 第1題: 簡述解釋型和編譯型程式設計語言?
- 第2題:Python解釋器種類以及特點?
- 第3題: 位和位元組的關系?
- 第4題: 位元組碼和機器碼的差別?
- 機器碼(machine code)
- 位元組碼(Bytecode)
- 第5題:Python3和Python2中 int 和 long的差別?
- 第6題:關注題,最近在公号更新一個神奇的系列入門文章
解釋型語言編寫的程式不需要編譯,在執行的時候,專門有一個解釋器能夠将VB語言翻譯成機器語言,每個語句都是執行的時候才翻譯。這樣解釋型語言每執行一次就要翻譯一次,效率比較低。
用編譯型語言寫的程式執行之前,需要一個專門的編譯過程,通過
編譯系統
,把源進階程式編譯成為機器語言檔案,翻譯隻做了一次,運作時不需要翻譯,是以編譯型語言的程式執行效率高,但也不能一概而論,
部分解釋型語言的解釋器通過在運作時動态優化代碼,甚至能夠使解釋型語言的性能超過編譯型語言。
- Python
當 從Python官方網站下載下傳并安裝好Python2.7後,就直接獲得了一個官方版本的解釋器:Cpython,這個解釋器是用C語言開發的,是以叫 CPython,在命名行下運作python,就是啟動CPython解釋器,CPython是使用最廣的Python解釋器。
- IPython
IPython是基于CPython之上的一個互動式解釋器,也就是說,IPython隻是在互動方式上有所增強,但是執行Python代碼的功能和CPython是完全一樣的,好比很多國産浏覽器雖然外觀不同,但核心其實是調用了IE。
- PyPy
PyPy是另一個Python解釋器,它的目标是執行速度,PyPy采用JIT技術,對Python代碼進行動态編譯,是以可以顯著提高Python代碼的執行速度。
- Jython
Jython是運作在Java平台上的Python解釋器,可以直接把Python代碼編譯成Java位元組碼執行。
- IronPython
IronPython和Jython類似,隻不過IronPython是運作在微軟.Net平台上的Python解釋器,可以直接把Python代碼編譯成.Net的位元組碼。
在Python的解釋器中,使用
廣泛的是CPython
,對于Python的編譯,除了可以采用以上解釋器進行編譯外,技術高超的開發者還可以按照自己的需求自行編寫Python解釋器來執行Python代碼,十分的友善!
- bit就是位,也叫比特位,是計算機表示資料最小的機關
- byte就是位元組
1byte=8bit
1byte就是1B
一個字元=2位元組
1KB=1024B
位元組就是Byte,也是B
位就是bit也是b
轉換關系如下:
- 1B= 8b
機器碼(machine code)
,學名機器語言指令,有時也被稱為原生碼(Native Code),是電腦的
CPU
可直接解讀的資料。
通常意義上來了解的話,機器碼就是計算機可以直接執行,并且執行速度最快的代碼。
用機器語言編寫程式,程式設計人員要首先熟記所用計算機的全部指令代碼和代碼的涵義。
手程式設計式時,程式員得自己處理每條指令和每一資料的存儲配置設定和輸入輸出,還得記住程式設計過程中每步所使用的工作單元處在何種狀态。
這是一件十分繁瑣的工作,編寫程式花費的時間往往是實際運作時間的幾十倍或幾百倍。
而且,編出的程式全是些0和1的指令代碼,直覺性差,還容易出錯。
現在,除了計算機生産廠家的專業人員外,絕大多數的程式員已經不再去學習機器語言了。
機器語言是微處理器了解和使用的,用于控制它的操作二進制代碼。
8086到Pentium的機器語言指令長度可以從1位元組到13位元組。
盡管機器語言好像是很複雜的,然而它是有規律的。
存在着多至100000種機器語言的指令。這意味着不能把這些種類全部列出來。
總結:機器碼是電腦CPU直接讀取運作的機器指令,運作速度最快,但是非常晦澀難懂,也比較難編寫,一般從業人員接觸不到。
位元組碼(Bytecode)
是一種包含執行程式、由一序列 op 代碼/資料對 組成的二進制檔案。位元組碼是一種中間碼,它比機器碼更抽象,需要直譯器轉譯後才能成為機器碼的中間代碼。
通常情況下它是已經經過編譯,但與特定機器碼無關。位元組碼通常不像源碼一樣可以讓人閱讀,而是編碼後的數值常量、引用、指令等構成的序列。
位元組碼主要為了實作特定軟體運作和軟體環境、與硬體環境無關。位元組碼的實作方式是通過編譯器和虛拟機器。編譯器将源碼編譯成位元組碼,特定平台上的虛拟機器将位元組碼轉譯為可以直接執行的指令。位元組碼的典型應用為Java bytecode。
位元組碼在運作時通過JVM(JAVA虛拟機)做一次轉換生成機器指令,是以能夠更好的跨平台運作。
總結:位元組碼是一種中間狀态(中間碼)的二進制代碼(檔案)。需要直譯器轉譯後才能成為機器碼。
Python 2有為非浮點數準備的int和long類型。
int類型的最大值不能超過sys.maxint,而且這個最大值是平台相關的。
可以通過在數字的末尾附上一個L來定義長整型,顯然,它比int類型表示的數字範圍更大。
在Python 3裡,隻有一種整數類型int,大多數情況下,它很像Python 2裡的長整型。
由于已經不存在兩種類型的整數,是以就沒有必要使用特殊的文法去差別他們。
序号 | 文章 |
---|---|
Python面試題No1 | Python基礎面試,看這篇文章畫重點吧 |
Python面試題No2 | Python面試快問快答,理論要的就是速度與精準 |
Python面試題No3 | 學習Python一年,基礎忘記了,看看面試題回憶回議 |
Python面試題No4 | 去面試Python工程師,這幾個基礎問題一定要能回答 |
Python面試題No5 | 2019年,Python工程師必考的6個面試題 |
Python面試題No6 | 昨天去面試,這5個Python面試題都被考到了 |
Python面試題No7 | 周三面試Python開發,這幾道Python面試題差點答錯,Python面試題No7 |
Python面試題No8 | 面試Python工程師,這幾道編碼題有必要背背 |
Python面試題No9 | 又面試了Python爬蟲工程師,碰到這麼幾道面試題 |
Python面試題No10 | 朋友去面試Python工程師,又帶回來幾道基礎題 |
Python面試題No11 | 剛畢業去面試Python工程師,這幾道題太難了 |
Python面試題No12 | 五一4天就背這些Python面試題了 |
Python面試題No13 | 大意了,這幾道Python面試題沒有答對 |
Python面試題No14 | 明天找python工作,看看這幾道Python面試題吧 |
Python面試題No15 | 這幾道Python面試題,穩準狠 |