python面試試題
在學習、工作生活中,許多人都需要跟試題打交道,借助試題可以檢測考試者對某方面知識或技能的掌握程度。你知道什么樣的試題才能切實地幫助到我們嗎?以下是小編整理的python面試試題,供大家參考借鑒,希望可以幫助到有需要的朋友。
1、python下多線程的限制以及多進程中傳遞參數(shù)的方式
python多線程有個全局解釋器鎖(global interpreter lock),這個鎖的`意思是任一時間只能有一個線程使用解釋器,跟單cpu跑多個程序一個意思,大家都是輪著用的,這叫“并發(fā)”,不是“并行”。
多進程間共享數(shù)據(jù),可以使用 multiprocessing。Value和multiprocessing。Array。
2、什么是lambda函數(shù)?它有什么好處?
lambda 函數(shù)是一個可以接收任意多個參數(shù)(包括可選參數(shù))并且返回單個表達式值的函數(shù)。lambda 函數(shù)不能包含命令,它們所包含的表達式不能超過一個。不要試圖向lambda 函數(shù)中塞入太多的東西;如果你需要更復雜的東西,應該定義一個普通函數(shù),然后想讓它多長就多長。
3、Python是如何進行類型轉(zhuǎn)換的?
①函數(shù)描述
② int(x [,base ]) 將x轉(zhuǎn)換為一個整數(shù)
③long(x [,base ]) 將x轉(zhuǎn)換為一個長整數(shù)
④float(x ) 將x轉(zhuǎn)換到一個浮點數(shù)
⑤complex(real [,imag ]) 創(chuàng)建一個復數(shù)
⑥str(x ) 將對象 x 轉(zhuǎn)換為字符串
⑦repr(x ) 將對象 x 轉(zhuǎn)換為表達式字符串
⑧eval(str ) 用來計算在字符串中的有效Python表達式,并返回一個對象
⑨t(yī)uple(s ) 將序列 s 轉(zhuǎn)換為一個元組
⑩list(s ) 將序列 s 轉(zhuǎn)換為一個列表
chr(x ) 將一個整數(shù)轉(zhuǎn)換為一個字符
unichr(x ) 將一個整數(shù)轉(zhuǎn)換為Unicode字符
ord(x ) 將一個字符轉(zhuǎn)換為它的整數(shù)值
hex(x ) 將一個整數(shù)轉(zhuǎn)換為一個十六進制字符串
oct(x ) 將一個整數(shù)轉(zhuǎn)換為一個八進制字符串
4、python多線程與多進程的區(qū)別
在UNIX平臺上,當某個進程終結(jié)之后,該進程需要被其父進程調(diào)用wait,否則進程成為僵尸進程(Zombie)。所以,有必要對每個Process對象調(diào)用join()方法 (實際上等同于wait)。對于多線程來說,由于只有一個進程,所以不存在此必要性。
多進程應該避免共享資源。在多線程中,我們可以比較容易地共享資源,比如使用全局變量或者傳遞參數(shù)。在多進程情況下,由于每個進程有自己獨立的內(nèi)存空間,以上方法并不合適。此時我們可以通過共享內(nèi)存和Manager的方法來共享資源。但這樣做提高了程序的復雜度,并因為同步的需要而降低了程序的效率。
5、Python里面如何拷貝一個對象?
標準庫中的copy模塊提供了兩個方法來實現(xiàn)拷貝。一個方法是copy,它返回和參數(shù)包含內(nèi)容一樣的對象。使用deepcopy方法,對象中的屬性也被復制。
6、介紹一下except的用法和作用?
Python的except用來捕獲所有異常,因為Python里面的每次錯誤都會拋出一個異常,所以每個程序的錯誤都被當作一個運行時錯誤。