在發布《Python程序員面試,這些問題你必須提前準備!》一文后,應廣大程序員朋友的強烈要求,小編就Python程序員面試必備問題整理了一份參考答案,希望能對準備換工作的程序員朋友有所幫助。如對答案有疑問,歡迎留言討論。
小編將這些面試問題大致分為四類:
什么(what)?如何做(how)?說區別/談優勢(difference)以及實踐操作(practice)。
What?
1. 什么是Python?
Python是一種編程語言,它有對象、模塊、線程、異常處理和自動內存管理。可以加入與其他語言的對比。下面是回答這一問題的幾個關鍵點:
a. Python是一種解釋型語言,python代碼在運行之前不需要編譯。
b. Python是動態類型語言,在聲明變量時,不需要說明變量的類型。
c. Python適合面向對象的編程,因為它支持通過組合與繼承的方式定義類。
d. 在Python語言中,函數是第一類對象。
e. Python代碼編寫快,但是運行速度比編譯語言通常要慢。
f. Python用途廣泛,常被用作“膠水語言”,可幫助其他語言和組件改善運行狀況。
g. 使用Python,程序員可以專注于算法和數據結構的設計,而不用處理底層的細節。
2. 什么是Python自省?
python自省是python具有的一種能力,使程序員面向對象的語言所寫的程序在運行時,能夠獲得對象的類python型。Python是一種解釋型語言。為程序員提供了極大的靈活性和控制力。
3. 什么是PEP 8?
PEP8是一種編程規范,內容是一些關于如何讓你的程序更具可讀性的建議。
4. 什么是pickling和unpickling?
Pickle模塊讀入任何Python對象,將它們轉換成字符串,然后使用dump函數將其轉儲到一個文件中——這個過程叫做pickling。反之從存儲的字符串文件中提取原始Python對象的過程,叫做unpickling。
5. 什么是Python裝飾器?
Python裝飾器是Python中的特有變動,可以使修改函數變得更容易。
6. 什么是Python的命名空間?
在Python中,所有的名字都存在于一個空間中,它們在該空間中存在和被操作——這就是命名空間。它就好像一個盒子,每一個變量名字都對應裝著一個對象。當查詢變量的時候,會從該盒子里面尋找相應的對象。
7. 什么是字典推導式和列表推導式?
它們是可以輕松創建字典和列表的語法結構。
8. Lambda函數是什么?
這是一個常被用于代碼中的單個表達式的匿名函數。
9. *args,**kwargs?參數是什么?
如果我們不確定要往函數中傳入多少個參數,或者我們想往函數中以列表和元組的形式傳參數時,那就使要用*args;如果我們不知道要往函數中傳入多少個關鍵詞參數,或者想傳入字典的值作為關鍵詞參數時,那就要使用**kwargs。
新聞熱點
疑難解答