本面試題題庫,由公號(hào):非本科程序員 整理發(fā)布
第1題: 簡述解釋型和編譯型編程語言?
解釋型語言編寫的程序不需要編譯,在執(zhí)行的時(shí)候,專門有一個(gè)解釋器能夠?qū)B語言翻譯成機(jī)器語言,每個(gè)語句都是執(zhí)行的時(shí)候才翻譯。這樣解釋型語言每執(zhí)行一次就要翻譯一次,效率比較低。
用編譯型語言寫的程序執(zhí)行之前,需要一個(gè)專門的編譯過程,通過
編譯系統(tǒng)
,把源高級(jí)程序編譯成為機(jī)器語言文件,翻譯只做了一次,運(yùn)行時(shí)不需要翻譯,所以編譯型語言的程序執(zhí)行效率高,但也不能一概而論,
部分解釋型語言的解釋器通過在運(yùn)行時(shí)動(dòng)態(tài)優(yōu)化代碼,甚至能夠使解釋型語言的性能超過編譯型語言。
第2題:Python解釋器種類以及特點(diǎn)?
-
Python
當(dāng) 從Python官方網(wǎng)站下載并安裝好Python2.7后,就直接獲得了一個(gè)官方版本的解釋器:Cpython,這個(gè)解釋器是用C語言開發(fā)的,所以叫 CPython,在命名行下運(yùn)行python,就是啟動(dòng)CPython解釋器,CPython是使用最廣的Python解釋器。
-
IPython
IPython是基于CPython之上的一個(gè)交互式解釋器,也就是說,IPython只是在交互方式上有所增強(qiáng),但是執(zhí)行Python代碼的功能和CPython是完全一樣的,好比很多國產(chǎn)瀏覽器雖然外觀不同,但內(nèi)核其實(shí)是調(diào)用了IE。
- PyPy
PyPy是另一個(gè)Python解釋器,它的目標(biāo)是執(zhí)行速度,PyPy采用JIT技術(shù),對(duì)Python代碼進(jìn)行動(dòng)態(tài)編譯,所以可以顯著提高Python代碼的執(zhí)行速度。
- 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é)碼。
在Python的解釋器中,使用
廣泛的是CPython
,對(duì)于Python的編譯,除了可以采用以上解釋器進(jìn)行編譯外,技術(shù)高超的開發(fā)者還可以按照自己的需求自行編寫Python解釋器來執(zhí)行Python代碼,十分的方便!
第3題: 位和字節(jié)的關(guān)系?
- bit就是位,也叫比特位,是計(jì)算機(jī)表示數(shù)據(jù)最小的單位
- byte就是字節(jié)
1byte=8bit
1byte就是1B
一個(gè)字符=2字節(jié)
1KB=1024B
字節(jié)就是Byte,也是B
位就是bit也是b
轉(zhuǎn)換關(guān)系如下:
- 1KB=1024B
- 1B= 8b
第4題: 字節(jié)碼和機(jī)器碼的區(qū)別?
機(jī)器碼(machine code)
機(jī)器碼(machine code)
,學(xué)名機(jī)器語言指令,有時(shí)也被稱為原生碼(Native Code),是電腦的
CPU
可直接解讀的數(shù)據(jù)。
通常意義上來理解的話,機(jī)器碼就是計(jì)算機(jī)可以直接執(zhí)行,并且執(zhí)行速度最快的代碼。
用機(jī)器語言編寫程序,編程人員要首先熟記所用計(jì)算機(jī)的全部指令代碼和代碼的涵義。
手編程序時(shí),程序員得自己處理每條指令和每一數(shù)據(jù)的存儲(chǔ)分配和輸入輸出,還得記住編程過程中每步所使用的工作單元處在何種狀態(tài)。
這是一件十分繁瑣的工作,編寫程序花費(fèi)的時(shí)間往往是實(shí)際運(yùn)行時(shí)間的幾十倍或幾百倍。
而且,編出的程序全是些0和1的指令代碼,直觀性差,還容易出錯(cuò)。
現(xiàn)在,除了計(jì)算機(jī)生產(chǎn)廠家的專業(yè)人員外,絕大多數(shù)的程序員已經(jīng)不再去學(xué)習(xí)機(jī)器語言了。
機(jī)器語言是微處理器理解和使用的,用于控制它的操作二進(jìn)制代碼。
8086到Pentium的機(jī)器語言指令長度可以從1字節(jié)到13字節(jié)。
盡管機(jī)器語言好像是很復(fù)雜的,然而它是有規(guī)律的。
存在著多至100000種機(jī)器語言的指令。這意味著不能把這些種類全部列出來。
總結(jié):機(jī)器碼是電腦CPU直接讀取運(yùn)行的機(jī)器指令,運(yùn)行速度最快,但是非?;逎y懂,也比較難編寫,一般從業(yè)人員接觸不到。
字節(jié)碼(Bytecode)
字節(jié)碼(Bytecode)
是一種包含執(zhí)行程序、由一序列 op 代碼/數(shù)據(jù)對(duì) 組成的二進(jìn)制文件。字節(jié)碼是一種中間碼,它比機(jī)器碼更抽象,需要直譯器轉(zhuǎn)譯后才能成為機(jī)器碼的中間代碼。
通常情況下它是已經(jīng)經(jīng)過編譯,但與特定機(jī)器碼無關(guān)。字節(jié)碼通常不像源碼一樣可以讓人閱讀,而是編碼后的數(shù)值常量、引用、指令等構(gòu)成的序列。
字節(jié)碼主要為了實(shí)現(xiàn)特定軟件運(yùn)行和軟件環(huán)境、與硬件環(huán)境無關(guān)。字節(jié)碼的實(shí)現(xiàn)方式是通過編譯器和虛擬機(jī)器。編譯器將源碼編譯成字節(jié)碼,特定平臺(tái)上的虛擬機(jī)器將字節(jié)碼轉(zhuǎn)譯為可以直接執(zhí)行的指令。字節(jié)碼的典型應(yīng)用為Java bytecode。
字節(jié)碼在運(yùn)行時(shí)通過JVM(JAVA虛擬機(jī))做一次轉(zhuǎn)換生成機(jī)器指令,因此能夠更好的跨平臺(tái)運(yùn)行。
總結(jié):字節(jié)碼是一種中間狀態(tài)(中間碼)的二進(jìn)制代碼(文件)。需要直譯器轉(zhuǎn)譯后才能成為機(jī)器碼。
第5題:Python3和Python2中 int 和 long的區(qū)別?
Python 2有為非浮點(diǎn)數(shù)準(zhǔn)備的int和long類型。
int類型的最大值不能超過sys.maxint,而且這個(gè)最大值是平臺(tái)相關(guān)的。
可以通過在數(shù)字的末尾附上一個(gè)L來定義長整型,顯然,它比int類型表示的數(shù)字范圍更大。
在Python 3里,只有一種整數(shù)類型int,大多數(shù)情況下,它很像Python 2里的長整型。
由于已經(jīng)不存在兩種類型的整數(shù),所以就沒有必要使用特殊的語法去區(qū)別他們。
第6題:關(guān)注題,最近在公號(hào)更新一個(gè)神奇的系列入門文章
歡迎關(guān)注夢(mèng)想橡皮擦的的公眾號(hào),搜索 — 非本科程序員
打開直接關(guān)注
https://weixin.sogou.com/weixin?type=1&ie=utf8&query=%E9%9D%9E%E6%9C%AC%E7%A7%91%E7%A8%8B%E5%BA%8F%E5%91%98
序號(hào) | 文章 |
---|---|
Python面試題No1 | Python基礎(chǔ)面試,看這篇文章畫重點(diǎn)吧 |
Python面試題No2 | Python面試快問快答,理論要的就是速度與精準(zhǔn) |
Python面試題No3 | 學(xué)習(xí)Python一年,基礎(chǔ)忘記了,看看面試題回憶回議 |
Python面試題No4 | 去面試Python工程師,這幾個(gè)基礎(chǔ)問題一定要能回答 |
Python面試題No5 | 2019年,Python工程師必考的6個(gè)面試題 |
Python面試題No6 | 昨天去面試,這5個(gè)Python面試題都被考到了 |
Python面試題No7 | 周三面試Python開發(fā),這幾道Python面試題差點(diǎn)答錯(cuò),Python面試題No7 |
Python面試題No8 | 面試Python工程師,這幾道編碼題有必要背背 |
Python面試題No9 | 又面試了Python爬蟲工程師,碰到這么幾道面試題 |
Python面試題No10 | 朋友去面試Python工程師,又帶回來幾道基礎(chǔ)題 |
Python面試題No11 | 剛畢業(yè)去面試Python工程師,這幾道題太難了 |
Python面試題No12 | 五一4天就背這些Python面試題了 |
Python面試題No13 | 大意了,這幾道Python面試題沒有答對(duì) |
Python面試題No14 | 明天找python工作,看看這幾道Python面試題吧 |
Python面試題No15 | 這幾道Python面試題,穩(wěn)準(zhǔn)狠 |
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
