文章目錄
本面試題題庫,由公號:非本科程序員 整理髮布
第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面試題,穩準狠 |