如果要對(duì)數(shù)據(jù)分析面試題進(jìn)行歸納總結(jié),基本可以分為三大類,分別是技術(shù)題、邏輯思維題、業(yè)務(wù)場(chǎng)景題。本欄目旨在為小伙伴們分享常考/經(jīng)典的數(shù)據(jù)分析面試題,大家在學(xué)習(xí)之余也可以進(jìn)行自測(cè),鞏固學(xué)習(xí)成果
(文末贈(zèng)送學(xué)習(xí)資料)今日,我們就技術(shù)題中的python部分總結(jié)了20道常考的面試題,一起測(cè)測(cè)吧!
把你的幸運(yùn)留言分享
讓小編和各位小伙伴們也沾沾你的運(yùn)氣
正文開始
關(guān)于Python的面試經(jīng)驗(yàn)
一般來(lái)說(shuō),面試官會(huì)根據(jù)求職者在簡(jiǎn)歷中填寫的技術(shù)及相關(guān)細(xì)節(jié)來(lái)出面試題。一位拿了大廠技術(shù)崗Special Offer的網(wǎng)友分享了他總結(jié)的面試經(jīng)驗(yàn)。當(dāng)時(shí),面試官根據(jù)他在簡(jiǎn)歷中所寫的技術(shù),面試題出的范圍大致如下:·?數(shù)據(jù)類型有幾種、有什么區(qū)別
·?進(jìn)程、線程、協(xié)程的定義及區(qū)別
·?深淺拷貝的區(qū)別
·?常用開發(fā)模式
·?函數(shù)式編程、對(duì)象式編程
·?閉包、裝飾器
·?垃圾回收機(jī)制
·?linux常用命令,舉例說(shuō)明
根據(jù)該網(wǎng)友的經(jīng)驗(yàn),以上是面試題的常考范圍,如果能答出來(lái)大部分內(nèi)容,說(shuō)明技術(shù)水平基本沒太大問題。建議每個(gè)問題至少答三點(diǎn),同時(shí)注意觀察面試官的反應(yīng),如果覺得面試官感興趣的話可以多說(shuō)一些,不感興趣的話則可適當(dāng)?shù)厣僬f(shuō)。平均每個(gè)問題回答控制在3-5分鐘比較合適。技術(shù)問題一般會(huì)問15個(gè)左右,一輪面試的時(shí)長(zhǎng)基本在一小時(shí)以上。一小時(shí)以下的面試成功希望可能會(huì)小一些。所以,建議大家在技術(shù)基礎(chǔ)方面一定要準(zhǔn)備充分、多下功夫。我們?yōu)榇蠹揖姆钌螾ython面試寶典中最常考的20道面試題。看看你都會(huì)做么?Python中的內(nèi)存管理由Python私有堆空間管理。對(duì)象和數(shù)據(jù)結(jié)構(gòu)位于私有堆中,開發(fā)者無(wú)權(quán)訪問此私有堆,是Python解釋器負(fù)責(zé)處理的。Python對(duì)象的堆空間分配由內(nèi)存管理器完成。核心API提供了一些開發(fā)者編寫代碼的工具。Python內(nèi)置的垃圾回收器會(huì)回收使用所有的未使用內(nèi)存,使其適用于堆空間。
2、解釋Python中的Help()函數(shù)和Dir()函數(shù)。Help()函數(shù)是一個(gè)內(nèi)置函數(shù),作用是查看函數(shù)和詳細(xì)說(shuō)明模塊用途。
Dir()函數(shù)是Python內(nèi)置函數(shù),Dir() 函數(shù)不帶參數(shù)時(shí),返回當(dāng)前范圍內(nèi)的變量、方法和定義的類型列表;帶參數(shù)時(shí),返回參數(shù)的屬性、方法列表。
3、當(dāng)Python退出時(shí),是否會(huì)清除所有分配的內(nèi)存?答案是否。當(dāng)Python退出時(shí),對(duì)其他對(duì)象具有循環(huán)引用的Python模塊,以及從全局名稱空間引用的對(duì)象不會(huì)被解除分配或釋放。無(wú)法解除分配C庫(kù)保留的那些內(nèi)存部分。退出時(shí),由于擁有自己的高效清理機(jī)制,Python會(huì)嘗試取消分配/銷毀其他所有對(duì)象。在運(yùn)行期間動(dòng)態(tài)修改一個(gè)類或模塊。
字典指的是Python中的內(nèi)置數(shù)據(jù)類型。它定義了鍵和值之間的一對(duì)一關(guān)系,包含了一對(duì)鍵及其對(duì)應(yīng)的值。字典由鍵索引。
6、解釋一下Python中的邏輯運(yùn)算符。Python中有3個(gè)邏輯運(yùn)算符:and,or,not。
7、為什么不建議以下劃線作為標(biāo)識(shí)符的開頭?Python沒有私有變量的概念,所以約定速成以下劃線為開頭來(lái)聲明一個(gè)變量為私有。如果不想讓變量私有,則不要使用下劃線開頭。
Flask是Python編寫的一款輕量級(jí)Web應(yīng)用框架。WSGI 工具箱采用 Werkzeug ,模板引擎使用 Jinja2。Flask使用 BSD 授權(quán)。Werkzeug和Jinja2是其中的兩個(gè)環(huán)境依賴。Flask不需要依賴外部庫(kù)。
9、解釋Python中的join()和split()函數(shù)。10、Python中的標(biāo)識(shí)符長(zhǎng)度有多長(zhǎng)?標(biāo)識(shí)符可以是任意長(zhǎng)度。在命名標(biāo)識(shí)符時(shí)還必須遵守以下規(guī)則:
·?只能以下劃線或者 A-Z/a-z 中的字母開頭
·?其余部分可以使用 A-Z/a-z/0-9
·?區(qū)分大小寫
·?關(guān)鍵字不能作為標(biāo)識(shí)符需要。Python指定了一個(gè)代碼塊。循環(huán),類,函數(shù)等中的所有代碼都在縮進(jìn)塊中指定。通常使用四個(gè)空格字符來(lái)完成。如果開發(fā)者的代碼沒有縮進(jìn),Python將無(wú)法準(zhǔn)確執(zhí)行并且也會(huì)拋出錯(cuò)誤。
當(dāng)我們不知道向函數(shù)傳遞多少參數(shù)時(shí),比如我們向傳遞一個(gè)列表或元組,我們就使用*args。
淺拷貝是將一個(gè)對(duì)象的引用拷貝到另一個(gè)對(duì)象上,如果在拷貝中改動(dòng),會(huì)影響到原對(duì)象。深拷貝是將一個(gè)對(duì)象拷貝到另一個(gè)對(duì)象中,如果對(duì)一個(gè)對(duì)象的拷貝做出改變時(shí),不會(huì)影響原對(duì)象。
14、Python中如何實(shí)現(xiàn)多線程?Python是多線程語(yǔ)言,其內(nèi)置有多線程工具包。多線程能讓我們一次執(zhí)行多個(gè)線程。Python中的GIL(全局解釋器鎖)確保一次執(zhí)行單個(gè)線程。一個(gè)線程保存GIL并在將其傳遞給下個(gè)線程之前執(zhí)行一些操作,看上去像并行運(yùn)行的錯(cuò)覺。事實(shí)上是線程在CPU上輪流運(yùn)行。所有的傳遞會(huì)增加程序執(zhí)行的內(nèi)存壓力。
當(dāng)一個(gè)嵌套函數(shù)在其外部區(qū)域引用了一個(gè)值時(shí),該嵌套函數(shù)就是一個(gè)閉包。其意義就是會(huì)記錄這個(gè)值。
16、Python的優(yōu)勢(shì)有哪些?·?高效的高級(jí)數(shù)據(jù)結(jié)構(gòu),可用少量代碼構(gòu)建出多種功能將 3,4,5 封裝到元組 mytuple 中,再將值解封裝到變量 x,y,z 中:PEP代表Python Enhancement Proposal,是一組規(guī)則,指定如何格式化Python代碼以獲得最大可讀性。主要區(qū)別是列表是可變的,元組是不可變的。比如以下舉例:會(huì)出現(xiàn)以下報(bào)錯(cuò):20、什么是Python模塊?Python中有哪些常用的內(nèi)置模塊?Python模塊是包含Python代碼的.py文件。此代碼可以是函數(shù)類或變量。常用的內(nèi)置模塊包括:random、data time、JSON、sys、math等。