拿下這十道Python經典面試題,你離拿到offer不遠了!

大家苦等的Python面試題出來了.........python

試題:NO.01web

1.python下多線程的限制以及多進程中傳遞參數的方式?面試

python多線程有個全局解釋器鎖(global interpreter lock),這個鎖的意思是任一時間只能有一個線程運用解釋器,跟單cpu跑多個程序一個意思,咱們都是輪着用的,這叫「併發」,不是「並行」。瀏覽器

多進程間同享數據,可以運用 multiprocessing.Value 和 multiprocessing.Array安全

試題:NO.02多線程

2.Python是怎麼進行內存辦理的?併發

Python引用了一個內存池(memory pool)機制,即Pymalloc機制(malloc:n.分配內存),用於辦理對小塊內存的請求和釋放函數

內存池(memory pool)的概念:高併發

當 創立不少耗費小內存的目標時,頻頻調用new/malloc會致使不少的內存碎片,導致功率降低。內存池的概念就是預先在內存中請求一定數量的,鉅細相等 的內存塊留做備用,當有新的內存需求時,就先從內存池中分配內存給這個需求,不夠了以後再請求新的內存。這樣作最顯著的優點就是可以削減內存碎片,提升功率。工具

內存池的完成方式有不少,性能和適用範圍也不相同。

python中的內存辦理機制——Pymalloc:

python中的內存辦理機制都有兩套完成,一套是針對小目標,就是鉅細小於256bits時,pymalloc會在內存池中請求內存空間;當大於256bits,則會直接履行new/malloc的行爲來請求內存空間。 關於釋放內存方面,當一個目標的引用計數變爲0時,python就會調用它的析構函數。在析構時,也採用了內存池機制,從內存池來的內存會被歸還到內存池中,以防止頻頻地釋放動做。

Python初學者有什麼不懂的能夠私信我——我剛整理了一套2018最新的0基礎入門和進階教程,無私分享,獲取方法:加q u n 227-435-450 便可獲取,內附:開發工具和安裝包,以及系統學習路線圖。

試題:NO.03

3.什麼是lambda函數?它有什麼好處?

lambda 函數是一個可以接納任意多個參數(包括可選參數)而且返回單個表達式值的函數。 lambda 函數不能包括指令,它們所包括的表達式不能超過一個。不要試圖向lambda 函數中塞入太多的東西;假如你須要更復雜的東西,應該定義一個通常函數,而後想讓它多長就多長。

試題:NO.04

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

1 a,b = 0, 1

2 while b

3 print (b),

4 a, b = b, a+b

試題:NO.05

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()辦法來獲取。

試題:NO.06

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]爲真,因爲它有一個元素。

試題:NO.07

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

forxinreversed(sequence):

...#dosomethingwithx..

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

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

x=sequence[i]

試題:NO.08

8.Python是怎麼進行類型變換的?

試題:NO.09

9.Python裏面如何實現tuple和list的轉換?

試題:NO.10

10.請寫出一段Python代碼實現刪除一個list裏面的重複元素?

不要給本身挖坑

保證你在答覆面試官的過程當中,答覆中的每一個知識點都瞭然於胸,不然被問住,是很難堪的。我在答覆web安全問題時,順嘴說了SQL注入,面試官說已然提到了SQL注入,那麼你講講它的原理及解決方法吧!丟人的是我居然把XSS跨站注入攻擊和SQL注入搞混了,局面也是有點爲難。因此斟酌你說的每一句話,聰明點的同窗還能夠引導面試官,讓他問出本身想要被問的問題。

必問到Redis,高併發解決辦法

面試了不少家公司,一定問道Redis瞭解多少,高併發的解決辦法。筆者答覆的都不是很好。

這一年你學習了什麼新的技能

這是面試官在調查你是否關於新鮮技能抱有極大熱忱。面試個人面試官無一例外都問到了這個問題。他們都但願能找一個不斷學習,開括創新的年輕人。多閱讀最新的技能資訊,挑選一方面本身感興趣的領域。

相關文章
相關標籤/搜索