每天,越來越多的公司正在尋找合格的程式設計師,Web開發人員和編碼人員。精通程式語言可以保證你的高薪和優秀的工作崗位。在目前存在的數千種程式語言中,Python已經證明自己是最受歡迎的程式語言列表。這就是今天我們將談論Python面試問題的原因 - 讓你為那次夢想的求職面試做好準備!
在本教程中,我們將介紹訪談的基本和技術方面。我們將從初學者(入門)問題開始,並在我們完成本教程的過程中構建更高級的問題。
介紹
讓我們從頂部開始,通過涵蓋更一般的Python面試問題和答案開始。這些是您在面試開始時最有可能被問到的問題,只是為了確定您是否真的對Python有基本的了解。之後,我們將繼續討論一些技術問題,最後提供一些一般性提示和建議。
問題1:什麼是Python?
正如您所預料的那樣,這是您必須要問的第一個Python面試問題之一。你的僱主可能會期待一個簡潔而徹底的答案,所以讓我們給他們一個。
Python是一種可移植的高級程式語言,具有內置的自動內存管理,線程,字符串,是基於對象的。它以簡單和內置的數據結構而著稱 - 事實上Python是開源的,這也有助於它的名聲。
問題2:為什麼Python優於Java?
你的一些Python面試問題可能涉及與其他程式語言的比較 - 這些可能是隨機的,但Java似乎是僱主提出的最常見的問題。
簡而言之,Python(與Java相比)更易於使用,編碼速度更快。此外,在數據方面,Java是靜態類型的,而Python提供動態類型。這被認為是一個巨大的進步。
問題3:Python中有多少數據類型?
關於Python的一個比較常見的訪談問題 - 你可能會被要求說出數字或實際命名。
Python有五種不同的數據類型:字符串,列表,數字,字典和元組。
問題4:'元組'和'列表'之間有什麼區別?
主要區別在於列表較慢,但可以編輯它們,而元組工作更快,但無法修改。
問題5:什麼是「pickling」和「unpickling」?
當Python中的模塊被接受並轉換為字符串模塊,然後轉儲到文件中時,就會發生Pickling
與此相反,unpickling是從文件中檢索字符串模塊。
對於這種基於比較的Python面試問題,請儘量使您的解釋儘可能簡單。您的潛在僱主可能會欣賞您能夠以簡單易懂的方式解釋棘手的主題。
問題6:什麼是'lambda'?
Lambda是一個匿名執行的函數,只有一個單表達式。
問題7:如何在Python中管理內存?
Python的私有堆空間負責內存管理。它只能由翻譯人員訪問- 如果您是Python程式設計師,您將無法訪問它。該語言還有一個內置的回收器,負責創建更多的空閒堆空間(這是通過回收未使用的內存來完成的)。
問題8:什麼是「通過」?
Pass只是表示在複合語句中應留空的空格。
問題9:你能用Python複製一個對象嗎?
雖然這聽起來像是一個基本的Python面試問題,但你可能會驚訝地發現有多少人真的遇到了這個問題。
是的,您可以在Python中複製對象,但不能全部複製。最通用和眾所周知的方法是使用copy.copy()命令。
問題10:如何在Python中刪除文件?
要在Python中刪除某些內容,請使用命令os.remove(name_of_the_file)。
問題11:什麼是'字典'?
還記得我們之前談過的數據類型嗎?內置的?字典就是這樣。
字典由鍵和鍵對應值組成。這是一個例子:
dict={'Car':'Ford','Type':'Mustang','Year':'1967'}
print dict[Car] Ford
print dict[Type] Mustang
print dict[Year] 1967
問題12:Python是一種解釋型語言嗎?
同樣,最常見的Python編碼面試問題之一 - 你應該牢記這一點。
是的,Python是一種解釋性程式語言。這是什麼意思?這是一個三方面的過程 - 你編寫一個原始碼,Python將其轉換為中間語言(為了更容易理解),然後它又被轉換為機器代碼然後執行。
問題13:哪一個是錯的?
a) xyz = 5,000,000
b) x,y,z = 1000,3000,7000
c) xyz = 1000 3000 7000
d) x_y_z = 5,000,000
答案:C是錯誤的。
問題14:Python如何面向對象?
面向對象的程式語言(OOP)基於這些類的類和對象。Python就是這樣。
更重要的是,Python擁有被歸功於OOP的功能 - 繼承,多態等。
問題15:什麼是'切片'?
在Python中,切片是指從列表,字符串等位置選擇多個項目時。
所以 - 這些是你在求職面試中可能會收到的更基本的Python面試問題。現在,讓我們嘗試更多地轉向高級內容和一些未觸及的Python技術面試問題。
Python面試問題:高級
問題1:編寫一個可以計算給定數字列表的代碼。
def list_sum(num_List):
if len(num_List) == 1:
return num_List[0] else:
return num_List[0] + list_sum(num_List[1:])
print(list_sum([3, 5, 8, 9, 9]))
結果:
34
問題2:編寫一個可以從列表中隨機化項目的代碼。
from random import shuffle
x = ['Skyrim', 'Belongs', 'To', 'The', 'Nords'] shuffle(x)
print(x)
結果:['Nords','Skyrim','To','Belongs','The'。
問題3:'range'和'xrange'之間有區別嗎?
是的,雖然起初可能不會引人注意。在功能和它們執行的任務方面,兩個命令幾乎相同。
然而,關鍵的區別在於範圍(使用時)帶回列表對象,而xrange返回xrange對象。
問題4:什麼是Dogpile效應?
這是Python面試的一個問題,一開始可能很難記住,所以請給它一些好的嘗試。
一個Dogpile網站的效果,當一個網站的緩存過期情況發生,但它是從用戶大量不同的請求命中。這可能會導致許多不同的問題,從延遲峰值到完全崩潰。
一個名為信號量鎖的系統用於防止Dogpiles發生。
問題5:解釋什麼是封裝。
封裝是Python的一個特性,因為它是一種面向對象的程式語言。請務必在您的Python面試問題中將此添加到您的答案中。
封裝是將相關數據成員分組到一個單獨位置的過程。與成員本身一起,封裝也會返回它們的功能。
問題6:異常終止何時發生?
首先,應該說 - 異常終止是壞事。你不希望它在你的編碼體驗中發生,雖然它在某些時候幾乎是不可避免的,特別是當你是初學程式設計師時。
異常終止是程序在執行過程中崩潰,而主要任務仍在運行。這通常是由錯誤的代碼或某些軟體問題引起的。
問題7:編寫一個代碼,用於計算文件中的所有大寫字母。
with open(I_LIKE_APPLES) as fh:
count = 0
text = fh.read()
for character in text:
if character.isupper():
count += 1
問題8:Python有編譯器嗎?
這實際上是一個比較嚴格的Python面試問題,主要是因為沒有多少人關注它。
Python確實有自己的編譯器,但它很容易被遺漏。這是因為它可以自動運行 - 你並沒有真正注意到它。
問題9:什麼是猴子補丁?
Monkey修補是指在代碼已經運行時對代碼進行的修改。
問題10:如何在知道URL時保存圖像?
要在本地保存圖像,您可以使用以下類型的代碼:
import urllib.request
urllib.request.urlretrieve("URL", "image-name.jpg")
問題11:如果list1是[4,6,8,1,0,3],list1 [-1]會是什麼?
「-1」始終指向列表中的最後一個索引,因此答案為3。
問題12:什麼是'裝飾'?
裝飾器用於將新的和新的代碼片段插入到現有的類或函數中。在裝飾器的幫助下,您可以在原始代碼之前或之後運行這些代碼。
問題13:什麼是'sub()','subn()'和'split()'方法?
一個名為「 re 」的模塊允許您在Py??thon中修改字符串。有三種方法可以做到這一點:
sub():找到特定的字符串並替換它們。
subn():與sub()相同,但也返回具有確切替換次數的新字符串。
split():將特定字符串拆分為列表。
我已經非常概括地介紹了Python中三種「 re 」字符串修改方法。在面試之前,建議對這個主題進行更多的研究 - 這些字符串通常是非常受歡迎的Python面試問題的一部分,潛在的僱主會問他們的工作提名者。
問題14:「編譯」和「連結」的過程有什麼作用?
我之前已經提到過Python編譯器,但這也是您可能覺得有用的Python面試問題和答案之一。
編譯讓你,嗯... 在你的代碼中編譯新的擴展,沒有任何錯誤。在此之後,連結可以是一個流動的過程 - 成功的編譯可以平滑連結並消除整個過程中的任何可能的問題。
如果您的潛在僱主沒有要求您深入研究,這可以被認為是更容易編寫Python的面試問題之一。
問題15:函數'help()'和'dir()'有什麼作用?
我認為最好使用Python技術面試中的一個問題。
可以從Python解釋器訪問這兩個函數。它們用於從內置函數中查看合併轉儲。
help()顯示文檔字符串,而dir()顯示已定義的符號。
現在我已經向您介紹了一些關於Python的更高級的面試問題,接下來我們將介紹一些您可以在面試前和面試期間應用的一般性技巧。
一般提示
求職面試既艱難又有壓力,但你不應該讓這種情況變得更好。您可以閱讀所有在網際網路上找到的Python面試問題和答案,但仍然不及面試。怎麼會這樣?
首先,您的潛在僱主不僅會向您詢問Python面試問題。他可能會問你以前的經歷,檢查你是一個什麼樣的人,了解你的愛好 - 所有這些因素對於找到這份工作非常重要。
留下良好印象的一個好方法是不要表現得像你的生活取決於面試的結果 - 如果你坐在那裡試圖回答Python技術面試問題,同時大汗淋漓,像葉子一樣顫抖,你可能會嚇到你跟誰說話的人。
另外,不要自大 - 當然,你可能有20年的Python專家經驗,但如果你因為嘲笑一些比較簡單的Python編碼面試問題而沒有得到這份工作,你會有什麼好處呢?因為它而傲慢嗎?
睡個好覺,不要擔心 - 向你的潛在僱主展示你真正的那個人,你很可能會成功。記住 - 這些人是專業人士,每天都要與想要的員工打交道 - 如果你試圖撒謊或欺騙,他們很可能會在幾秒鐘內抓住你。
結論
隨著對Python程式設計師和開發人員的需求增加,如果你經歷了數以百計的Python面試問題的數百次採訪,直到你終於找到了這份夢想的工作,那就不足為奇了 - 這可能是一件好事!當您回答如此多的與Python相關的問題時,您將變得越來越放鬆並對自己的成功能力充滿信心。但請記住, - 自信並不等於自大。