2018 python面試題

在開始看面試題時,我以爲咱們頗有必要去了解一下市場須要什麼樣的python開發人員:css

1.python爬蟲工程師(scrapy,xpath,正則,mongdb,redis,http 協議,html)html

2.python web(django,flask,mysql,nuittest,http,html,css)python

3.python 自動化運維(腳本)mysql

4.python 數據分析(pandas,numpy,tf,算法,建模,分析)web

肯定本身的職業方向後,能夠看看我倖幸苦苦採集來的面試題吧面試

1.mvc的思想:redis

MVC 是一種使用 MVC(Model View Controller 模型-視圖-控制器)設計建立 Web 應用程序的模式: 
Model(模型)表示應用程序核心(好比數據庫記錄列表)。 
View(視圖)顯示數據(數據庫記錄)。 
Controller(控制器)處理輸入(寫入數據庫記錄)。 
MVC 模式同時提供了對 HTML、CSS 和 JavaScript 的徹底控制。 
Model(模型)是應用程序中用於處理應用程序數據邏輯的部分。 
  一般模型對象負責在數據庫中存取數據。 
View(視圖)是應用程序中處理數據顯示的部分。 
  一般視圖是依據模型數據建立的。 
Controller(控制器)是應用程序中處理用戶交互的部分。 
  一般控制器負責從視圖讀取數據,控制用戶輸入,並向模型發送數據。算法

 

2.迭代器:sql

其實也就是一個帶狀態的對象,它能夠把你調用next()方法時,返回容器的下一個值。數據庫

也就是next(容器)

容器能夠是list,hase,touple。

 

3.list去重的方法:

使用set()

L=[1,2,2,2,4,5,6]

list(set(L))

 

4.有兩個list,每一個list內有4個數字,如何使它們的差最小?

先把倆個list合併成一個list,再對這個list進行排序,這時在拿相鄰的相減,把差累加即可

 

5.python的map()和reduce()的使用(要會,應爲大數據也有mapreduce)

map()函數接受兩個參數,一個是函數,一個是序列,map將傳入的函數做用到序列的

每一個元素zhong,並把結果返回新的list。

reduce()函數接受兩個參數,把結果繼續和序列的下一個元素作累加計算。

 

6.狀態碼 200/403/404/504

200:成功

403:資源不可用

404:服務器不響應

504:網關超時

 

7.python單元測試:

使用python的nuittest模塊:

unitTest模塊是一個自帶的單元測試框架,結構以下:

testCase 是一個測試用例

testSlite 多個測試用例結合在一塊兒

testLoader用來加載testCase

testRuner 用來測試

testResult 用來存放結果

 

8.is,==,淺拷貝,深拷貝

is比較的是存儲地址。

==對比的是值。

淺拷貝只拷貝對象自己

深拷貝還拷貝對象的父級

 

9.python進程,線程,協程

問到這些,你無論啥,就先說python不支持真正的多線程,應爲GIL的存在並可不以真正的提升效率。建議使用

協程(yield)

 

10.python如何進行內存管理的

內存機制:python中有一個內存池機制,用於辦理小塊內存請求和釋放。

計算機制:當對象被建立時爲1,應用加1,超出引用做用域或被從新賦值減1,當爲0時,會被回收。

代機制:記不清了,請自行查找

 

11.redis的瞭解,高併發案例

k-v存儲結構,有string,map,list,set,sortset。

搶購:2W強100個商品,使用redis隊列,把先進來的的人存到隊列中,當隊列大於100後就將這些用戶的頁面轉到結束頁面

相關文章
相關標籤/搜索