面试题3

1. 简述解释型和编译型编程语言?(1分)
解释型就是对人类比较友好的语言,易读性比较好,编译型属于比较底层的语言,运行更快一些,不过对人类不友好。

2. 位和字节的关系?(1分)
8位是一字节

3. b、B、KB、MB、GB 的关系?(1分)
1gb=1024mb
1mb=1024kb
1kb=1024B
1B=8b

4. 请至少列举5个 PEP8 规范(越多越好)(1分)。
缩进。4个空格的缩进,不使用Tap,更不能混合使用Tap和空格。
每行最大长度79,换行可以使用反斜杠,最好使用圆括号。换行点要在操作符的后边敲回车。
类和top-level函数定义之间空两行;类中的方法定义之间空一行;函数内逻辑无关段落之间空一行;其他地方尽量不要再空行。
不要在一句import中多个库,比如import os, sys不推荐
if/for/while语句中,即使执行语句只有一句,也必须另起一行

5. 字符串和列表如何相互转换?(2分)
用split分割字符串就成了列表
列表join

6. 写代码实现字符串反转,如:v = ‘oldboy’ (2分)
v='oldboy'
newv=v.split().reverse().join()

7. python递归的最大层数?(1分)
998?

8. 列举 Python2和Python3的区别?(2分)
Py3.1性能比Py2.5慢15%,还有很大的提升空间
Py3.X源码文件默认使用utf-8编码
去除print语句,加入print()函数实现相同的功能

9. 用一行代码实现数值交换: (1分)
a = 1
b = 2
a,b=b,a


10. 写一个装饰器计算函数执行时间。(5分)
import time
def fun(func):
def call_fun(*args, **kwargs):
start_time = time.time()
func(*args, **kwargs)
end_time = time.time()
print(end_time - start_time)
return call_fun

@fun
你的函数


11. 比较: a = [1,2,3] 和 b = [(1),(2),(3) ] 以及 b = [(1,),(2,),(3,) ] 的区别?(2分)

12. 求结果:(3分)
v = [lambda:x for x in range(10)]
print( v )
print( v[0] )
print( v[0]() )

迭代器
一个对象
9

13. re的match和search区别?(1分)
match开头匹配
search anywhere匹配,里面有就匹配


14. 如何实现 “1,2,3” 变成 [‘1’,’2’,’3’] ? (1分)
a='1,2,3'
l = list(a.split(','))



15. 列举了解的MySQL数据库引擎,并简述区别?(2分)
1.Myisam是Mysql的默认存储引擎,当create创建新表时,未指定新表的存储引擎时,默认使用Myisam。
每个MyISAM在磁盘上存储成三个文件。文件名都和表名相同,扩展名分别是.frm(存储表定义)、
.MYD(MYData,存储数据)、.MYI(MYIndex,存储索引)。数据文件和索引文件可以放置在不同的目录,平均分布io,获得更快的速度。
2.InnoDB存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全。但是对比Myisam的存储引擎,
InnoDB写的处理效率差一些并且会占用更多的磁盘空间以保留数据和索引。

16. 数据库索引的作用?(1分)
第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。
第二,可以大大加快 数据的检索速度,这也是创建索引的最主要的原因。
第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。
第四,在使用分组和排序 子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。
第五,通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。

17. char和varchar的区别?(1分)
char长度不可变写的多少就是多少
varchar可变,数据少可以小点

18. 视图的作用?(1分)
和模板和数据库交互???

19. pymysql如何避免SQL注入?(2分)
1.寻找到SQL注入的位置
2.判断服务器类型和后台数据库类型
3.针对不通的服务器和数据库特点进行SQL注入攻击

20. 连表查询时:inner join 和 left join的区别?(2分)
left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录
   inner join(等值连接) 只返回两个表中联结字段相等的行


21. 根据表写SQL语句:(8分)

? 查询所有同学的学号、姓名、班级名称;
select * form
? 查询姓“李”的老师的个数;
select teacher-name form teacher
? 查询平均成绩大于60分的同学的学号和平均成绩;
select
? 查询有课程成绩小于60分的同学的学号、姓名
select
? 删除学习“叶平”老师课的score表记录;
select
? 查询各科成绩最高和最低的分:以如下形式显示:课程ID,最高分,最低分;
select
? 查询每门课程被选修的学生数;
select
? 查询选修“杨艳”老师所授课程的学生中,成绩最高的学生姓名及其成绩;
select


22. 谈谈你对http协议的认识。(2分)
HTTP:超文本传输协议。使用的是可靠的数据传输协议,在传输的过程中不会被损坏或产生混乱。


23. 简述MVC和MTV。(1分)
MVC就是把web应用分为模型(M),控制器(C),视图(V)三层,mtv是model template veiw,
Django的MTV模式本质上与MVC模式没有什么差别,也是各组件之间为了保持松耦合关系,只是定义上有些许不同

24. 简述django请求的生命周期。(3分)
客户端请求发过来先通过rsgi,然后进中间件,然后进视图,通过视图调用模板和数据库,然后返回中间件,最后通过rsgi返回。
其中中间件如果遇到response 不是none,就直接从中间件就反回了,并不会往下走。

25. django路由系统中如何根据别名反向生成URL?(1分)
url(r'^test',name="test_url"),
reverse_url=reverse("test_url")

26. 简述FBV和CBV?(2分)
fbv是function的意思,c是class的意思,编程方式不同而已,一个是写的函数,一个是类

27. django中 filter和exclude的区别?(2分)
filter是筛选出括号中的东西,exclude是筛选出‘’除了‘’括号中的所有

28. django中only和defer的区别?(2分)
only:只查询制定字段
defer:查询指定字段以外的字段

29. django中 values和values_list的区别?(2分)
value产生对象是字典形式,values_list是对象形式

30. django的Form组件的作用?(2分)
主要是简化form表单和数据库连接的,用form组件可以直接用model生成直接在html页面显示的input框组,在提交数据的时候可以用model来检验数据,防止不合符规则的数据进入数据库。

31. 简述django中间件的流程以及应用场景?(4分)
从上往下依次进入各个中间件,每个中间件都有5个过程,process_request,views,exception,template,还有response,数据从request进入按顺序进入每个过程,最后从response出去,
如果其中一个过程不通过,response返回不是none,就会直接走最后一个中间件的response,然后依次往上走每个中间件的response出去。

32. 发送ajax请求时如何携带 csrf token?(2分)
在data中添加一组键值对,csrf_token:asdhfkasdhfkashdf13i3324oiu234u

33. 编写查询语句:(9分,前6个每个1分,最后一题3分)
1. 查看所有学生,并打印 姓名、班级名称
student_obj=student.objects.all()
print(stedent_obj.values('name','class_name'))
2. 添加一个学生且班级ID为1
student.objects.create('name=xxx,class_id=1')
3. 添加一个学生且班级名称为"全栈12期"

4. 查看班级ID为2的所有学生
s_obj=class.objects.filter('id=2')
print(s_obj.values('student'))
5. 查看班级名称为"全栈12期"的所有学生
c_obj=class.objects.filter('name=‘全站12期’')
print(c_obj.student_set.value('name'))
6. 查看班级ID不等于2的所有学生信息。
c_obj=class.objects.exclude('class_id=2')
print(c_obj.student.value('student_info'))
7. 查看没有学生的所有班级ID、班级名称

34. Python是什么模块操作Excel?(2分)
xlrd xlwt

35. 尽量多的列举上传文件的方法。(2分)
socket自己写一个,直接传byte,另一边open文件写入
下个插件,贴到自己网页上。
表单提交,form要设置一下,然后就可以上传文件格式的。

36. 简述用户登录流程,含图片验证码(无需写代码)。(3分)
用户输入用户名和密码,然后输入验证码,首先验证码是ajax先提交进行校验,如果错误返回在页面错误名称,如果正确提交用户写的用户名和密码到数据库进行校验。
错误返回错误名称,正确的话保存session和本地cookies,然后跳转到之前的网页或者主页。

37. 什么是xss攻击?(2分)
网站直接渲染了用户提交的js代码,而不是用解释符替代js代码显示,导致游览器执行了用户提交的js代码,很多代码是有害的。

38. Vue实例(4分)
? Vue怎么用?
npm run dev

? Vue实例的生命周期钩子函数都有哪一些?
beforecreate created beforemount mounted beforeupdate updated(鬼知道这是啥) beforedestoryed destoryed

39. Vue语法(3分)
? 列出你掌握的Vue的基础语法
v-html
v-if
v-bind
v-on
v-model

40. Vue组件(10分)
? 如何注册全局组件?
Vue.component('my-component-name', {

})

? 如何注册局部组件?
new Vue({
el: '#app'
components: {
'component-a': ComponentA,
'component-b': ComponentB
}
})

? 父组件如何往子组件传值?
父可以v-bind事件
子组件直接props:值,

? 子组件如何往父组件传值?
子$emit 父监听事件

? 组件间如何传值?
一个bus$emit 另一个bus.$on

原文地址:https://www.cnblogs.com/qunxiadexiaoxiangjiao/p/9451451.html