干貨滿滿--親身經(jīng)歷的 Python 面試題

寫在之前

如果看過我第一篇文章 (三個月自學(xué)拿到 python 開發(fā) offer!) 的朋友可能知道,我來上海一個多星期,面試了大概十幾家公司,收到了一些 offer,其實(shí)截止到昨天下午我依然還是在面試的路上。我是自學(xué) Python,因?yàn)橹安恢雷约何磥硪獜氖率裁礃拥膷徫?,所以學(xué)的時候爬蟲和后端的知識都有涉及,所以自己投的公司的范圍也比較廣,所以接下來我寫的東西也可能比較多,可以選自己的方向去看。

面試范圍

這么多家公司的面試取個并集的話,基本上所有能問的大類都問了,諸如 Python 基礎(chǔ),web框架,爬蟲,數(shù)據(jù)庫,計算機(jī)網(wǎng)絡(luò),操作系統(tǒng),數(shù)據(jù)結(jié)構(gòu)與算法等。下面我就開始詳細(xì)說一下各個分類我被問到的面試題,我爭取盡量的多記起一些來。

面試題

Python基礎(chǔ)

1.說一說你所知道的 Python 數(shù)據(jù)結(jié)構(gòu)有哪些。

2.Python 中列表和元組的區(qū)別是什么?元組是不是真的不可變?

3.什么是生成器和迭代器?它們之間有什么區(qū)別?

4.什么是閉包?裝飾器又是什么?裝飾器有什么作用?你用過裝飾器嗎?請寫一個裝飾器的例子。

5.說一下什么是匿名函數(shù),用匿名函數(shù)有什么好處?

6.在學(xué)習(xí) Python 的過程中,你有想過如何提高 Python 的運(yùn)行效率嗎?

7.用過類嗎?知道繼承嗎?請寫一個例子,用到繼承。

8.說一下深拷貝和淺拷貝。

還有一些記不太清了,感覺都不是很難,就是正常如果看過任意一本 Python 入門書的都可以回答出來。

Web 框架

1.什么是 Django? 說說你的理解。

2.Django 遵循什么樣的設(shè)計模式?每個字母代表什么意思?各自完成什么樣的功能?它和MVC是怎么對應(yīng)的?

3.Django 中的緩存是怎么用的?

4.用 Django 做過什么項(xiàng)目嗎?大概是怎么樣的思路?現(xiàn)在讓你寫個登陸頁面,你要怎么寫?

5.說一下 session 和 cookie 區(qū)別。為什么 cookie 是不安全的?

6.你在用 Django 做項(xiàng)目的時候碰到過什么問題嗎?你印象最深的是哪個? 你是怎么解決的?

怎么說呢,Django 這部分在面試的時候問的更多的是一些項(xiàng)目方面的問題,具體的細(xì)節(jié)和應(yīng)用其實(shí)很少,頂多就是幾個常見的問題。所以建議投這方面工作的朋友手里要有項(xiàng)目,這樣心里不慌。

爬蟲

1.說一下你寫爬蟲的時候用到過的包。

2.會用正則表達(dá)式嗎?會的話請用正則表達(dá)式寫一下郵箱的地址。

3.說一下 Python 爬蟲的框架,你用過哪個?做過什么樣的爬蟲嗎?

4.你在寫爬蟲的過程中遇到過什么問題?印象最深的是哪個?你是如何解決的?

5.什么是反爬蟲?說一下你知道的反爬蟲,各自是什么特點(diǎn),該如何解決?

6.什么是 Ajax?(因?yàn)槲业捻?xiàng)目上有寫這個,所以問了)

爬蟲這部分同樣也是問了較多簡歷上所寫項(xiàng)目的實(shí)現(xiàn)以及一些細(xì)節(jié),所以投爬蟲的時候也要提前寫點(diǎn)項(xiàng)目,如果用框架更好,如果不會的話,起碼也得知道有什么框架,大概是干什么的。

數(shù)據(jù)庫

1.用過數(shù)據(jù)庫嗎?說一下你熟悉的數(shù)據(jù)庫,這個數(shù)據(jù)庫有什么特點(diǎn)。

2.什么是索引?什么字段適合建立索引?索引的優(yōu)缺點(diǎn)你知道嗎?

3.什么是事務(wù)?

4.知道范式嗎?說一說數(shù)據(jù)庫的第三范式(如果你看到這里的話,建議你將第一,二范式也都看看)

5.會寫 SQL 語句嗎?如何給表中插入數(shù)據(jù)?如何更新數(shù)據(jù)?(看到這,你是不是數(shù)據(jù)庫的增刪改查都得看看)

數(shù)據(jù)庫這些東西我感覺問的并不多,大多數(shù)公司問我的都是第 1 個和第 5 個問題,其中有一個公司某個面試官說要看看我的基礎(chǔ),然后就多問了幾個,然后...幸虧我才看了。

計算機(jī)網(wǎng)絡(luò)

1.說一說什么是 TCP/IP 協(xié)議?

2.知道什么是三次握手和四次揮手嗎?簡單描述一下。

3. Post 和 Get 有什么區(qū)別?

4.知道滑動窗口嗎?

5. TCP 和 UDP 有什么區(qū)別?

6.知道 Socket 網(wǎng)絡(luò)編程嗎?知道怎么用嗎?

好像還有幾個來著,我忘記了。怎么說呢,網(wǎng)絡(luò)這個地方大概是我的弱項(xiàng),做為一個當(dāng)年差點(diǎn)在網(wǎng)絡(luò)上掛了的菜雞,大概只回答了一半的題,剩下的一半就是持續(xù)蒙圈。

操作系統(tǒng)

1.什么是死鎖?如何預(yù)防死鎖?

2.學(xué)過編譯原理嗎?會用嗎?

3.說一下什么是虛擬內(nèi)存技術(shù)。

4.用過 Linux 嗎?會用嗎?在上面搭過環(huán)境嗎?說一下常用的指令。

操作系統(tǒng)這個大多數(shù)問的是用過 Linux 沒,會不會常用的操作指令?我的回答是 No。因?yàn)橹苯訌?Windows 到了 Mac,可以說是相當(dāng) sad 了。

數(shù)據(jù)結(jié)構(gòu)和算法

1.說一說你所知道的排序算法,它們的時間復(fù)雜度和空間復(fù)雜度分別是多少?

2.手寫一下冒泡排序和快速排序。

3.在紙上實(shí)現(xiàn)用兩個隊列模擬棧的操作(所以看到這里你是不是應(yīng)該也去看看如何用兩個棧模擬隊列)。

4.知道什么是動態(tài)規(guī)劃嗎?

5.手寫一下將二叉樹轉(zhuǎn)化成雙向鏈表。

6.手寫一下將兩個有序鏈表合并成一個有序鏈表。

7.手寫一下二叉樹的層次遍歷。

8.手寫如何判斷一棵二叉樹是否為另一棵二叉樹的子樹。

還有幾個題就很難了,涉及到了容斥原理和博弈論的內(nèi)容就不在這說了。數(shù)據(jù)結(jié)構(gòu)和算法一直是面試的一個老大難問題,其實(shí)大多數(shù)公司問的比較基礎(chǔ),我面試了這么多公司,唯一的一次筆試就是七道算法題,兩個小時。基本上的都是 1,2,6 的那種簡單難度,看看書就會了,因?yàn)槲抑霸诖髮W(xué)是做算法競賽的,所以覺得這部分還可以。

寫在最后

不知不覺寫了這么多,這是我面試的總問題的百分之七八十。這些面試的問題大多數(shù)都是基礎(chǔ),其實(shí)如果你在網(wǎng)上看過別人寫的面經(jīng)你就會發(fā)現(xiàn),有些其實(shí)都是重合的,意思就是如果你在去面試之前有針對的看過這些東西,其實(shí)到真正面試的時候會舒服很多。

面試之前看看職位的要求,然后做有針對的學(xué)習(xí),往往會收獲意想不到的驚喜。我每次去面試之前,都會準(zhǔn)備一些時間,然后把可能會問到的問題存到自己的云筆記里面,這樣坐地鐵,做公交的時候可以抽時間看一眼。

其實(shí)說到最后還是回到一個好好準(zhǔn)備上面,祝愿所有努力的人都獲得滿意的 offer,如果你覺得寫的還可以,點(diǎn)個贊呦。

歡迎關(guān)注微信公眾號 -- Python空間。

Python空間
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 用于python面試整理,主要來源于http://www.cnblogs.com/skiler/p/6952707...
    AIM外星人閱讀 2,473評論 0 13
  • Python資源大全中文版,包括:Web框架、網(wǎng)絡(luò)爬蟲、模板引擎、數(shù)據(jù)庫、數(shù)據(jù)可視化、圖片處理等,由伯樂在線持續(xù)更...
    dxl1236閱讀 4,834評論 2 33
  • 關(guān)于Mongodb的全面總結(jié) MongoDB的內(nèi)部構(gòu)造《MongoDB The Definitive Guide》...
    中v中閱讀 32,302評論 2 89
  • hshfsjfsjgejfjwfjefjwja
    lxz11閱讀 172評論 0 0
  • 昨天晚上沒睡好一直很困就懶在家一直不想出門磨蹭到2點(diǎn)半才到店里媽媽有點(diǎn)不高興弄得我也不高興為什么要把自己的負(fù)面情緒...
    無可緊要的小事情閱讀 107評論 0 0

友情鏈接更多精彩內(nèi)容