在开始看面试题时,我以为咱们颇有必要去了解一下市场须要什么样的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后就将这些用户的页面转到结束页面