python面試題

dav2100發表於2021-09-09

1.python下多執行緒的限制以及多程式中傳遞引數的方式?

答:python多執行緒有個全域性直譯器鎖(global interpreter lock),這個鎖的意思是任一時間只能有一個執行緒運用直譯器,跟單cpu跑多個程式一個意思,我們都是輪著用的,這叫“併發”,不是“並行”。
多程式間同享資料,能夠運用 multiprocessing.Value 和 multiprocessing.Array。

2、Python是怎麼進行記憶體辦理的?

答:Python引用了一個記憶體池(memory pool)機制,即Pymalloc機制(malloc:n.分配記憶體),用於辦理對小塊記憶體的請求和釋放
記憶體池(memory pool)的概念:
當創立很多耗費小記憶體的目標時,頻頻呼叫new/malloc會導致很多的記憶體碎片,致使功率下降。記憶體池的概念就是預先在記憶體中請求必定數量的,鉅細相等 的記憶體塊留作備用,當有新的記憶體需求時,就先從記憶體池中分配記憶體給這個需求,不夠了之後再請求新的記憶體。這樣做最顯著的優勢就是能夠削減記憶體碎片,提高功率。
記憶體池的完成方式有很多,效能和適用範圍也不相同。
python中的記憶體辦理機制——Pymalloc:
python中的記憶體辦理機制都有兩套完成,一套是針對小目標,就是鉅細小於256bits時,pymalloc會在記憶體池中請求記憶體空間;當大於256bits,則會直接履行new/malloc的行為來請求記憶體空間。 關於釋放記憶體方面,當一個目標的引用計數變為0時,python就會呼叫它的解構函式。在析構時,也採用了記憶體池機制,從記憶體池來的記憶體會被歸還到記憶體池中,以防止頻頻地釋放動作。

3、什麼是lambda函式?它有什麼好處?

答:lambda 函式是一個能夠接納任意多個引數(包括可選引數)並且返回單個表示式值的函式。 lambda 函式不能包括指令,它們所包括的表示式不能超過一個。不要試圖向lambda 函式中塞入太多的東西;假如你需要更復雜的東西,應該定義一個一般函式,然後想讓它多長就多長。

4、怎麼用Python輸出一個Fibonacci數列?

1 a,b = 0, 1

2 while b

3 print (b),

4 a, b = b, a+b

5、介紹一下Python中webbrowser的用法?

答:webbrowser模組提供了一個高階介面來顯現基於Web的文件,大部分情況下只需要簡單的呼叫open()辦法。
webbrowser定義瞭如下的反常:
exception webbrowser.Error, 當瀏覽器控制元件發作過錯是會丟擲這個反常
webbrowser有以下辦法:
webbrowser.open(url[, new=0[, autoraise=1]])
這個辦法是在默許的瀏覽器中顯現url, 假如new = 0, 那麼url會在同一個瀏覽器視窗下開啟,假如new = 1, 會開啟一個新的視窗,假如new = 2, 會開啟一個新的tab, 假如autoraise = true, 視窗會主動增加。
webbrowser.open_new(url)
在默許瀏覽器中開啟一個新的視窗來顯現url, 否則,在僅有的瀏覽器視窗中開啟url
webbrowser.open_new_tab(url)
在默許瀏覽器中當開一個新的tab來顯現url, 否則跟open_new()相同
webbrowser.get([name]) 依據name返回一個瀏覽器目標,假如name為空,則返回默許的瀏覽器
webbrowser.register(name, construtor[, instance])
註冊一個名字為name的瀏覽器,假如這個瀏覽器型別被註冊就能夠用get()辦法來獲取。

6、解釋一下python的and-or語法

與C表示式 bool ? a : b相似,但是bool and a or b,當 a 為假時,不會象C表示式 bool ? a : b 相同作業
應該將 and-or 技巧封裝成一個函式:
defchoose(bool, a, b):return(booland[a]or[b])[0]
由於 [a] 是一個非空列表,它永久不會為假。甚至 a 是 0 或 ” 或其它假值,列表[a]為真,由於它有一個元素。

7、how do I iterate over a sequence in reverse order?

假如不是list, 最通用但是稍慢的解決方案是:

foriinrange(len(sequence)-1, -1, -1):

x=sequence[i]

8、Python是怎麼進行型別變換的?

資料轉換

9、Python裡面如何實現tuple和list的轉換?

列表與元組轉換

10、請寫出一段Python程式碼實現刪除一個list裡面的重複元素?

列表去重

相關文章