在開始看面試題時,我以爲咱們頗有必要去了解一下市場須要什麼樣的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後就將這些用戶的頁面轉到結束頁面