Python程式設計師面試牢記這些,助你闖關成功!

千鋒武漢發表於2021-10-18

       Python程式設計師的面試不同於其他的崗位,在面試過程中經常會遇到筆試、面試、複試等環節,面試就如同闖關。“闖關”過程中,面試官對於 人員的基礎非常看重,那麼如何在面試中向面試官展示自己的基本功呢?小千 整理了幾點面試必考問題。

35

       1、簡述Python的特點和優點

       Python是一門開源的解釋性語言,相比Java、C++等語言,Python具有動態特性,非常靈活。

       2、Python有哪些資料型別

       Python有6種內建的資料型別,其中不可變資料型別是Number(數字),String(字串),Tuple(元組),可變資料型別是List(列表),Dict(字典),Set(集合)。

       3、列表和元組的區別

       列表和元組都是可迭代物件,能夠對其進行迴圈、切片等,但元組tuple是不可變的。元組不可變的特性,使得它可以成為字典Dict中的鍵。

       4、Python是如何執行的

       Python程式執行時,會先進行編譯,將.py檔案中的程式碼編譯成位元組碼(bytecode),編譯結果儲存在記憶體的PyCodeObject中,然後由Python虛擬機器解釋執行。當程式執行結束後,Python直譯器會將PyCodeObject儲存到pyc檔案中。每一次執行時Python都會先尋找與檔案同名的pyc檔案,如果pyc存在則比對修改記錄,根據修改記錄決定直接執行或再次編譯後執行,最後生成pyc檔案。

       5、Python執行速度慢的原因

       a).Python不是強型別的語言,所以直譯器執行時遇到變數以及資料型別轉換、比較操作、引用變數時都需要檢查其資料型別。

       b).Python的編譯器啟動速度比JAVA快,但幾乎每次都要啟動編譯。

       c).Python的物件模型會導致訪問記憶體效率變低。Numpy的指標指向快取區資料的值,而Python的指標指向快取物件,再通過快取物件指向資料:

圖片1

       6、面對Python慢的問題,有什麼解決辦法

       a).可以使用其他的直譯器,比如PyPy和Jython等。

       b).如果對效能要求較高且靜態型別變數較多的應用程式,可以使用CPython。

       c).對於IO操作多的應用程式,Python提供asyncio模組提高非同步能力。

       7、描述一下全域性直譯器鎖GIL

       每個執行緒在執行時候都需要先獲取GIL,保證同一時刻只有一個執行緒可以執行程式碼,即同一時刻只有一個執行緒使用CPU,也就是說多執行緒並不是真正意義上的同時執行。但是在IO操作時,是可以釋放鎖的(這也是Python能夠非同步的原因)。而且如果想要利用多核CPU,那麼可以使用多程式。

       8、深拷貝,淺拷貝

       深拷貝是將物件本身複製給另一個物件,淺拷貝則是將物件的引用複製給另一個物件。所以當複製後的物件改變時,深拷貝的原物件值不會改變,而淺拷貝原物件的值會被改變。

       這些最基本的問題熟記心中後,在面試中你就可以放心的向面試官展示你的基本功了。

       本文來自千鋒教育,轉載請註明出處。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31548651/viewspace-2837819/,如需轉載,請註明出處,否則將追究法律責任。

相關文章