Python程序员面试牢记这些,助你闯关成功!
Python程序員的面試不同于其他的崗位,在面試過程中經常會遇到筆試、面試、復試等環節,面試就如同闖關。“闖關”過程中,面試官對于Python開發人員的基礎非常看重,那么如何在面試中向面試官展示自己的基本功呢?小千整理了幾點面試必考問題。
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的指針指向緩存對象,再通過緩存對象指向數據:
6、面對Python慢的問題,有什么解決辦法
a).可以使用其他的解釋器,比如PyPy和Jython等。
b).如果對性能要求較高且靜態類型變量較多的應用程序,可以使用CPython。
c).對于IO操作多的應用程序,Python提供asyncio模塊提高異步能力。
7、描述一下全局解釋器鎖GIL
每個線程在執行時候都需要先獲取GIL,保證同一時刻只有一個線程可以執行代碼,即同一時刻只有一個線程使用CPU,也就是說多線程并不是真正意義上的同時執行。但是在IO操作時,是可以釋放鎖的(這也是Python能夠異步的原因)。而且如果想要利用多核CPU,那么可以使用多進程。
8、深拷貝,淺拷貝
深拷貝是將對象本身復制給另一個對象,淺拷貝則是將對象的引用復制給另一個對象。所以當復制后的對象改變時,深拷貝的原對象值不會改變,而淺拷貝原對象的值會被改變。
這些最基本的問題熟記心中后,在面試中你就可以放心的向面試官展示你的基本功了。
本文來自千鋒教育,轉載請注明出處。
總結
以上是生活随笔為你收集整理的Python程序员面试牢记这些,助你闯关成功!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java怎么样?学完后前途怎么样?
- 下一篇: Python有哪些是必须学的运算符?