震驚!幾道Python 理論面試題,Python面試題No18

本面試題題庫,由公號:非本科程序員 整理髮布

第1題: 簡述解釋型和編譯型編程語言?

解釋型語言編寫的程序不需要編譯,在執行的時候,專門有一個解釋器能夠將VB語言翻譯成機器語言,每個語句都是執行的時候才翻譯。這樣解釋型語言每執行一次就要翻譯一次,效率比較低。

用編譯型語言寫的程序執行之前,需要一個專門的編譯過程,通過編譯系統,把源高級程序編譯成爲機器語言文件,翻譯只做了一次,運行時不需要翻譯,所以編譯型語言的程序執行效率高,但也不能一概而論,

部分解釋型語言的解釋器通過在運行時動態優化代碼,甚至能夠使解釋型語言的性能超過編譯型語言。

第2題:Python解釋器種類以及特點?

  • 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代碼,十分的方便!

第3題: 位和字節的關係?

  • bit就是位,也叫比特位,是計算機表示數據最小的單位
  • byte就是字節

1byte=8bit

1byte就是1B

一個字符=2字節

1KB=1024B

字節就是Byte,也是B

位就是bit也是b

轉換關係如下:

  • 1KB=1024B
  • 1B= 8b

第4題: 字節碼和機器碼的區別?

機器碼(machine code)

機器碼(machine code),學名機器語言指令,有時也被稱爲原生碼(Native Code),是電腦的CPU可直接解讀的數據。

通常意義上來理解的話,機器碼就是計算機可以直接執行,並且執行速度最快的代碼。

用機器語言編寫程序,編程人員要首先熟記所用計算機的全部指令代碼和代碼的涵義。
手編程序時,程序員得自己處理每條指令和每一數據的存儲分配和輸入輸出,還得記住編程過程中每步所使用的工作單元處在何種狀態。
這是一件十分繁瑣的工作,編寫程序花費的時間往往是實際運行時間的幾十倍或幾百倍。
而且,編出的程序全是些0和1的指令代碼,直觀性差,還容易出錯。
現在,除了計算機生產廠家的專業人員外,絕大多數的程序員已經不再去學習機器語言了。

機器語言是微處理器理解和使用的,用於控制它的操作二進制代碼。

8086到Pentium的機器語言指令長度可以從1字節到13字節。

儘管機器語言好像是很複雜的,然而它是有規律的。

存在着多至100000種機器語言的指令。這意味着不能把這些種類全部列出來。

總結:機器碼是電腦CPU直接讀取運行的機器指令,運行速度最快,但是非常晦澀難懂,也比較難編寫,一般從業人員接觸不到。

字節碼(Bytecode)

字節碼(Bytecode)是一種包含執行程序、由一序列 op 代碼/數據對 組成的二進制文件。字節碼是一種中間碼,它比機器碼更抽象,需要直譯器轉譯後才能成爲機器碼的中間代碼。

通常情況下它是已經經過編譯,但與特定機器碼無關。字節碼通常不像源碼一樣可以讓人閱讀,而是編碼後的數值常量、引用、指令等構成的序列。

字節碼主要爲了實現特定軟件運行和軟件環境、與硬件環境無關。字節碼的實現方式是通過編譯器和虛擬機器。編譯器將源碼編譯成字節碼,特定平臺上的虛擬機器將字節碼轉譯爲可以直接執行的指令。字節碼的典型應用爲Java bytecode。

字節碼在運行時通過JVM(JAVA虛擬機)做一次轉換生成機器指令,因此能夠更好的跨平臺運行。

總結:字節碼是一種中間狀態(中間碼)的二進制代碼(文件)。需要直譯器轉譯後才能成爲機器碼。

第5題:Python3和Python2中 int 和 long的區別?

Python 2有爲非浮點數準備的int和long類型。
int類型的最大值不能超過sys.maxint,而且這個最大值是平臺相關的。
可以通過在數字的末尾附上一個L來定義長整型,顯然,它比int類型表示的數字範圍更大。

在Python 3裏,只有一種整數類型int,大多數情況下,它很像Python 2裏的長整型。
由於已經不存在兩種類型的整數,所以就沒有必要使用特殊的語法去區別他們。

第6題:關注題,最近在公號更新一個神奇的系列入門文章

歡迎關注夢想橡皮擦的的公衆號,搜索 — 非本科程序員

打開直接關注

https://weixin.sogou.com/weixin?type=1&ie=utf8&query=非本科程序員

序號 文章
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面試題,穩準狠
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章