2018 python面试题

在开始看面试题时,我觉得我们很有必要去了解一下市场需要什么样的python开发人员:

1.python爬虫工程师(scrapy,xpath,正则,mongdb,redis,http 协议,html)

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

3.python 自动化运维(脚本)

4.python 数据分析(pandas,numpy,tf,算法,建模,分析)

确定自己的职业方向后,可以看看我幸幸苦苦采集来的面试题吧

1.mvc的思想:

MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式: 
Model(模型)表示应用程序核心(比如数据库记录列表)。 
View(视图)显示数据(数据库记录)。 
Controller(控制器)处理输入(写入数据库记录)。 
MVC 模式同时提供了对 HTML、CSS 和 JavaScript 的完全控制。 
Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。 
  通常模型对象负责在数据库中存取数据。 
View(视图)是应用程序中处理数据显示的部分。 
  通常视图是依据模型数据创建的。 
Controller(控制器)是应用程序中处理用户交互的部分。 
  通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。

2.迭代器:

其实也就是一个带状态的对象,它可以把你调用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后就将这些用户的页面转到结束页面

猜你喜欢

转载自www.cnblogs.com/xiaodong520/p/9212029.html