1.到底什么是Python?
如果你應(yīng)聘的是一個(gè)Python開(kāi)發(fā)崗位,你就應(yīng)該知道這是門(mén)什么樣的語(yǔ)言,以及它為什么這么酷。以及它哪里不好。
2.什么是PEP8?
PEP8是一個(gè)編程規(guī)范,內(nèi)容是一些關(guān)于如何讓你的程序更具可讀性的建議。
其主要內(nèi)容包括代碼編排、文檔編排、空格的使用、注釋、文檔描述、命名規(guī)范、編碼建議等。
3.什么是pickling和unpickling?
Pickle模塊讀入任何Python對(duì)象,將它們轉(zhuǎn)換成字符串,然后使用dump函數(shù)將其轉(zhuǎn)儲(chǔ)到一個(gè)文件中——這個(gè)過(guò)程叫做pickling。
反之從存儲(chǔ)的字符串文件中提取原始Python對(duì)象的過(guò)程,叫做unpickling。
4.Python是如何被解釋的?
Python是一種解釋性語(yǔ)言,它的源代碼可以直接運(yùn)行。Python解釋器會(huì)將源代碼轉(zhuǎn)換成中間語(yǔ)言,之后再翻譯成機(jī)器碼再執(zhí)行。
5.Python是怎樣管理內(nèi)存的?
Python的內(nèi)存管理是由私有heap空間管理的。所有的Python對(duì)象和數(shù)據(jù)結(jié)構(gòu)都在一個(gè)私有heap中。程序員沒(méi)有訪問(wèn)該heap的權(quán)限,只有解釋器才能對(duì)它進(jìn)行操作。
為Python的heap空間分配內(nèi)存是由Python的內(nèi)存管理模塊進(jìn)行的,其核心API會(huì)提供一些訪問(wèn)該模塊的方法供程序員使用。
Python有自帶的垃圾回收系統(tǒng),它回收并釋放沒(méi)有被使用的內(nèi)存,讓它們能夠被其他程序使用。
6.有哪些工具可以幫助debug或做靜態(tài)分析?
PyChecker是一個(gè)靜態(tài)分析工具,它不僅能報(bào)告源代碼中的錯(cuò)誤,并且會(huì)報(bào)告錯(cuò)誤類(lèi)型和復(fù)雜度。Pylint是檢驗(yàn)?zāi)K是否達(dá)到代碼標(biāo)準(zhǔn)的另一個(gè)工具。
7.什么是Python裝飾器?
Python裝飾器是Python中的特有變動(dòng),可以使修改函數(shù)變得更容易。
8.數(shù)組和元組之間的區(qū)別是什么?
數(shù)組和元組之間的區(qū)別:數(shù)組內(nèi)容是可以被修改的,而元組內(nèi)容是只讀的。另外,元組可以被哈希,比如作為字典的關(guān)鍵字。
9.參數(shù)按值傳遞和引用傳遞是怎樣實(shí)現(xiàn)的?
Python中的一切都是類(lèi),所有的變量都是一個(gè)對(duì)象的引用。引用的值是由函數(shù)確定的,因此無(wú)法被改變。但是如果一個(gè)對(duì)象是可以被修改的,你可以改動(dòng)對(duì)象。
10.字典推導(dǎo)式和列表推導(dǎo)式是什么?
它們是可以輕松創(chuàng)建字典和列表的語(yǔ)法結(jié)構(gòu)。
11.Python都有哪些自帶的數(shù)據(jù)結(jié)構(gòu)?
Python自帶的數(shù)據(jù)結(jié)構(gòu)分為可變的和不可變的。可變的有:數(shù)組、集合、字典;不可變的有:字符串、元組、數(shù)。
12.什么是Python的命名空間?
在Python中,所有的名字都存在于一個(gè)空間中,它們?cè)谠摽臻g中存在和被操作——這就是命名空間。
它就好像一個(gè)盒子,每一個(gè)變量名字都對(duì)應(yīng)裝著一個(gè)對(duì)象。當(dāng)查詢(xún)變量的時(shí)候,會(huì)從該盒子里面尋找相應(yīng)的對(duì)象。
13.Python中的lambda是什么?
這是一個(gè)常被用于代碼中的單個(gè)表達(dá)式的匿名函數(shù)。
14.為什么lambda沒(méi)有語(yǔ)句?
匿名函數(shù)lambda沒(méi)有語(yǔ)句的原因,是它被用于在代碼被執(zhí)行的時(shí)候構(gòu)建新的函數(shù)對(duì)象并且返回。
15.Python中的pass是什么?
Pass是一個(gè)在Python中不會(huì)被執(zhí)行的語(yǔ)句。在復(fù)雜語(yǔ)句中,如果一個(gè)地方需要暫時(shí)被留白,它常常被用于占位符。
16.Python中什么是遍歷器?
遍歷器用于遍歷一組元素,比如列表這樣的容器。
17.Python中的unittest是什么?
在Python中,unittest是Python中的單元測(cè)試框架。它擁有支持共享搭建、自動(dòng)測(cè)試、在測(cè)試中暫停代碼、將不同測(cè)試迭代成一組,等等的功能。
18.在Python中什么是slicing?
Slicing是一種在有序的對(duì)象類(lèi)型中(數(shù)組,元組,字符串)節(jié)選某一段的語(yǔ)法。
19.在Python中什么是構(gòu)造器?
生成器是實(shí)現(xiàn)迭代器的一種機(jī)制。它功能的實(shí)現(xiàn)依賴(lài)于yield表達(dá)式,除此之外它跟普通的函數(shù)沒(méi)有兩樣。
20.Python中的docstring是什么?
Python中文檔字符串被稱(chēng)為docstring,它在Python中的作用是為函數(shù)、模塊和類(lèi)注釋生成文檔。
來(lái)源:CSDN