python超高频面试题(纯干货持续更新,点赞留言➕订阅,♥️)
1.python的GIL是什么
GIL 是python的全局解释器锁,同一进程中假如有多个线程运行,一个线程在运行python程序的时候会霸占python解释器(加了一把锁即GIL),使该进程内的其他线程无法运行,等该线程运行完后其他线程才能运行。如果线程运行过程中遇到耗时操作,则解释器锁解开,使其他线程运行。所以在多线程中,线程的运行仍是有先后顺序的,并不是同时进行。
多进程中因为每个进程都能被系统分配资源,相当于每个进程有了一个python解释器,所以多进程可以实现多个进程的同时运行,缺点是进程系统资源开销大
2.python内建数据类型有哪些
整型--int
布尔型--bool
字符串--str
列表--list
元组--tuple
字典--dict
3.python中可变数据类型和不可变数据类型
不可变数据类型:数值型int、字符串型string和元组tuple
不允许变量的值发生变化,如果改变了变量的值,相当于是新建了一个对象,而对于相同的值的对象,在内存中则只有一个对象(一个地址)
可变数据类型:列表list和字典dict;
允许变量的值发生变化,即如果对变量进行append、+=等这种操作后,只是改变了变量的值,而不会新建一个对象,变量引用的对象的地址也不会变化,不过对于相同的值的不同对象,在内存中则会存在不同的对象,即每个对象都有自己的地址,相当于内存中对于同值的对象保存了多份,这里不存在引用计数,是实实在在的对象。
4.提高python运行效率的方法
1、使用生成器,因为可以节约大量内存
2、循环代码优化,避免过多重复代码的执行
3、核心模块用Cython PyPy等,提高效率
4、多进程、多线程、协程
5、多个if elif条件判断,可以把最有可能先发生的条件放到前面写,这样可以减少程序判断的次数,提高效率
5.python中copy和deepcopy区别
直接赋值:其实就是对象的引用(别名)。
浅拷贝(copy):拷贝父对象,不
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
虽然我是很普通院校的毕业,但是我靠着独特的技巧获得不少大厂的面试,例如腾讯,字节跳动等,牛客虽然人均985,遍地211,但是普通学校毕业的其实占大多数,在经济形势不好且互联网内卷严重的情形下,普通院校学生获得面试越来越困难,很多人公司投了一大堆,一个面试没有,我希望通过自己的经历来告诉测试开发或者测试方向的普通院校同学怎么获得大厂面试机会,当然还有我求职过程中遇到的面试题总结,项目教程。