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

  • 相关阅读:
    二叉排序树的建立_查找_插入_删除
    java学习书籍推荐
    Java之路——敬JAVA初学者(作者:MoMo)
    结构体的定义及应用
    java获取缓存通用类
    金额转换为自定义字符串
    WebApi接入Swagger
    webApi的控制台服务
    自动生成缓存Key值的CacheKeyHelper
    DictionaryHelper2
  • 原文地址:https://www.cnblogs.com/qunxiadexiaoxiangjiao/p/9451451.html
Copyright © 2020-2023  润新知