首页 > 其他 > 详细

面试经历整理

时间:2019-07-07 16:11:22      阅读:105      评论:0      收藏:0      [点我收藏+]

1.广州九富科技(中移动外包)

面试经历:九富--->品高软件(一面)--->中移南方基地(二面),给我的感觉就像被层层转包

面试内容:

一面(品高--面试):

  • 请说明你对python语言的理解?
  • 请说明python与其他语言之间的差别?
  • 请说明python语言现在用的比较多的场景以及经典的框架是什么?
  • 请说明python语言在web开发中django和flask框架之间的区别?
  • 请说明python在云计算开发常用的框架以及技术栈?
  • 请说明python在运维环境比较用的框架?
  • 在现有的学习之外,是否有计划学习其他内容,请说明?

二面(中移动-面试):

  • 将一个列表生成式改为圆括号变为什么?
列表生成式:[i for i in range(10)]--->(i for i in range(10))
将会变为生成器,需要分清列表生成式,字典生成式,生成器
  • 常用的字典和列表的方法有什么?请最少说明三种,是常用的
list.append() #将数据添加到列表中
list.extend() #将一个列表中的数据一次性的添加到列表中
list.reverse() #对一个列表进行反转
list.remove(obj) #移除第一个匹配的值

dict.fromkeys()  # 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
dict.get(key, default=None) #返回指定键的值,如果值不在字典中返回default值
dict.items() #以列表返回可遍历的(键, 值) 元组数组,需要谨记是列表的形式
dict.keys() #返回一个迭代器,可以使用 list() 来转换为列表
  • 字符串翻转的三种方式
name = "felix"
    # 方法一:
    name=name[::-1]
    # 方法二:
    name2=list(name)
    name2.reverse()
    name=‘‘.join(name2)
    # 方法三:(不太会)
    from functools import reduce
    name=reduce(lambda x, y: y+x, name)
  • 快速展示一个文件夹内所有的文件夹名称
# coding=utf-8
import os
# 第一种方式,使用os.listdir(),来迭代展示文件夹
def show_dir(rootdir,dir_list):
    # 获取当前文件内的文件夹与文件
    dir_or_files = os.listdir(rootdir)
    # 循环
    for dir_file in dir_or_files:
        # 获取当前文件或者是文件夹的绝对路径
        dir_file_path = os.path.join(rootdir,dir_file)
        # 判断当前绝对路径是文件夹还是文件
        if os.path.isdir(dir_file_path):
            dir_list.append(dir_file_path)
            # 如果是文件夹则迭代展示
            show_dir(dir_file_path,dir_list)


if __name__ == __main__:
    root_path = r"D:\工作"
    dir_list =[]
    show_dir(root_path,dir_list)
    print(dir_list)

# 第二种方式
def show2(rootdir):
    for root,dirs,fiels in os.walk(rootdir):
        for dir in dirs:
            print(os.path.join(root,dir))

if __name__ == __main__:
    rootdir = r"D:\工作"
    show2(rootdir)
  • TCP的初始和结束的状态码是什么?且数值为多少
TCP协议分六种状态码,分别为URG、ACK、PSH、RST、SYN、FIN等
其中初始状态码为SYN,数值为1
其中结束状态码为FIN,数值为1
  • Gil锁的原理是什么?请详细说明,如果碰到gil锁,在不采用生产者消费者模型如何提升并发数
Python多线程并不能真正能发挥作用,因为在Python中,有一个GIL,即全局解释锁,该锁的存在保证在同一个时间只能有一个线程执行任务,也就是多线程并不是真正的并发,只是交替得执行。假如有10个线程跑在10核CPU上,当前工作的也只能是一个CPU上的线程。对于提高并发数要不使用treading模块,要不就是采用多路复用I/O,不过即使采用多路并用I/O也会发生调度时间长的可能性,需要合理使用!
  • 简述django的驱动过程(详细说明MVC)
web开发中主要是采用MVC这种设计模型,不过在django中主要是采用MTV模型,为了各种组件之间的松耦合关系,其中M代表为模型,T代表为模板,V代表为视图。主要流程如下
控制器既路由控制获取到获取,根据URL匹配到相应的视图函数,其中视图去models中获取数据,如果有数据库相关则从数据库中获取值将数据范回到视图,将要展示的数据返回到模板中,其中模板就是HTML文件,最后展示在使用者面前。
  • django对ORM的支持,说明ORM中在底层中增删改的方式
django原生的ORM就特别好用,增删改查的主要方法主要有以下方法
创建:create()
查询:filter()
删除:delete()
修改:update()


ok

面试经历整理

原文:https://www.cnblogs.com/gbq-dog/p/11146510.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!