公司名称:陕西秦贝网络科技有限公司 公司地址:西安国际港务区中西部陆港金融小镇c座16层05室 公司规模:100-499人 公司环境:下图 笔试:无 面试环节 1、 Q:说几个常用的列表函数 A:index() 返回元素所引 reverse() 列表倒叙 sort() 从小到大排序 Append() 添加 extend()添加多个 remove() 删除 2、 什么是lambda函数?它有什么好处? lambda 函数是一个可以接收任意多个参数(包括可选参数)并且返回单个表达式值的函数。 lambda 函数不能包含命令,它们所包含的表达式不能超过一个。不要试图向lambda 函数中塞入太多的东西;如果你需要更复杂的东西,应该定义一个普通函数,然后想让它多长就多长。 3、 如何知道Python对象的类型 Type() 4、.如何用Python来进行查询和替换一个文本字符串? 可以使用sub()方法来进行查询和替换,sub方法的格式为:sub(replacement, string[, count=0])
replacement是被替换成的文本
string是需要被替换的文本
count是一个可选参数,指最大被替换的数量 5、Python里面search()和match()的区别? match()函数只检测RE是不是在string的开始位置匹配,search()会扫描整个string查找匹配, 也就是说match()只有在0位置匹配成功的话才有返回,如果不是开始位置匹配成功的话,match()就返回none 6、用Python匹配HTML tag的时候,<.*>和<.*?>有什么区别? 前者是贪婪匹配,会从头到尾匹配 <a>xyz</a>,而后者是非贪婪匹配,只匹配到第一个 >。 7、Python里面如何生成随机数? import random
random.random()
它会返回一个随机的0和1之间的浮点数 8、Q:你用过哪些框架? A:Flask框架、Django、Scrapy框架 9、Q:说说你对MVC和MVT的理解? A:MVC简介: M:Model,模型,和数据库进行交互 V:View,视图,负责产生 Html 页面 C:Controller,控制器,接收请求,进行处理,与 M 和 V 进行交互,返回应答。 MVT简介: M:Model,模型,和 MVC 中的 M 功能相同,和数据库进行交互。 V:view,视图,和 MVC 中的 C 功能相同,是核心,负责接收请求、获取数据、返回结果 T:Template,模板,和 MVC 中的V 功能相同,产生 Html 页面 10、Q:Django 中间件是如何使用的? A:在http请求 到达视图函数之前 和视图函数return之后,django会根据自己的规则在合适的时机执行中间件中相应的方法。 中间件的执行流程 1、执行完所有的request方法到达视图函数。 2、执行中间件的其他方法 2、经过所有response方法返回客户端 中间件可以定义五个方法,分别是:(主要的是 process_request和process_response) process_request(self,request) process_view(self, request, view_func,view_args, view_kwargs) process_template_response(self,request,response) process_exception(self, request, exception) process_response(self, request, response) 11、Q:MySQL的索引类型有哪些,怎么优化查询效率? A:索引类型有:普通索引、唯一索引、主键索引、组合索引、全文索引 查询优化: 1、对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引 2、应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描 3、应尽量避免在 where 子句中使用!= 或 <> 操作符,否则将引擎放弃使用索引而进行全表扫描 4、应尽量避免在 where 子句中使用or 来连接条件,如果一个字段有索引,一个字段没有索引,将导致引擎放弃使用索引而进行全表扫描 5、对于多张大数据量的表 JOIN,要先分页再 JOIN,否则逻辑读会很高,性能很差 6、分表分库 、主从读写分离 12、还问了一些Redis相关的知识,比较杂,都是些基本的使用以及概念东西
面试总结:本次面试问到的东西比较杂,从基础到框架项目以及缓存都有问到,整体难度不是很大,覆盖面比较广,保持平常心,不紧张,认真回答即可
|