• 面试题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

  • 相关阅读:
    loaded some nib but the view outlet was not set
    指标评比
    IOS DEVELOP FOR DUMMIES
    软件测试题二
    javascript select
    DOM节点类型详解
    mysql操作
    UVA 10055
    solutions for 'No Suitable Driver Found For Jdbc'
    解决git中文乱码问题
  • 原文地址:https://www.cnblogs.com/qunxiadexiaoxiangjiao/p/9451451.html
Copyright © 2020-2023  润新知