python全栈常见面试题

一、python相关

1)python基础

        1、生成器与迭代器的区别

        生成器和迭代器的区别 - 知乎

        2、yield,及为什么用yield能节约内存

        yield可以把普通函数变成一个generator,并不是一次返回的,而是执行一次计算一次

        3、进程跟线程的区别

        4、进程间通信的方式有哪些

        5、线程间通信的方式有哪些

        6、协程跟线程的区别,及优缺点

        7、GIL存在,为什么线程还会有资源冲突

        8、列表与元组的区别,数组与列表有什么区别,数组和列表在存储上有什么区别

              array,series 存储相同的数据类型,且分配的内存连续。

        9、什么是迭代器?什么是可迭代对象

        10、如何建立websocket

        11、用过哪些库?os、requests、sys、json、asyncio、threading、subprocess

        12、装饰器的使用场景

        13、什么是闭包

        14、不使用random.shuffle,如何打乱一个列表

        15、用过哪些锁,不同锁的应用场景有什么不同,可重入锁,互斥锁

        16、random是一个伪随机数,有什么方法证明是伪随机吗?

        17、numpy,pandas相关pandas面试题 - myworldworld - 博客园

        18、如果现在有两个Dataframe,怎么合并,类似于全连接

        19、如何快速统计数据的统计摘要,比如最大,最小,平均值,方差?df.describe()

        20、如何对Dataframe的每一个元素做运算?apply?map?

        21、set去重的原理?__hash__,__eq__

        22、子类可以重写父类的私有方法吗?

        23、空列表占用的内存空间是多少,[0, 0, 0],[0]*3,[0 for _ in range(3)]所占用的空间一样吗?为什么?


sys.getsizeof([])
56
sys.getsizeof([0,0,0])
120
sys.getsizeof([0]*3)
80
sys.getsizeof([0 for _ in range(3)])
88

        24、mro是什么?mro算法:深度遍历(DFS)广度优先遍历(BFS)C3算法。解决什么问题?

                方法解析顺序,菱形继承

        25、is和==的区别

                ==比较两个对象或值的相等性。

                is运算符用于检查两个对象是否属于同一内存对象。

        26、map、reduce函数

               map(function, iterable, ...)  
                reduce(function, iterable[, initializer])

        27、如何在函数内部修改全局变量?

                global声明

        28、__init__、__new__区别?参数__new__至少一个参数cls,__init__self.

        29、哪些是可变数据类型?不可变数据类型?

        不可变数据类型:数值型、字符串型string和元组tuple 

        可变数据类型:列表list和字典dict

2)Django

        1、Django中的中间件的作用是什么,怎么使用,如果有多个中间件,执行顺序是什么

        2、框架的实质或者说框架的基本功能包括哪些?

        3、Django中如何设置静态文件的路径及模板路径

        4、怎么解决跨域问题

        5、render(request, test.html,{'k1':1,'k2':'uuu'}),返回对应的url会有什么现象?为什么?

                test.html

<body>
    <h1>{{k1}}</h1>
    <h1>{{k2}}</h1>
    <script>
        alert({{k1}})
        alert({{k2}})
    </script>
</body>

二、数据库相关

        1、MySQL有哪些存储引擎,不同存储引擎反应到数据存储的文件有什么不同

  •         InnoDB    支持事务,支持行锁定跟外键,是MySQL的默认存储引擎
    • MyISAM    支持较高的查询和插入速度,但不支持事务
    • MEMORY    将数据存储到内存中,为查询和引用其他表数据提供快速访问

        2、MySQL的Innodb的索引的数据结构是什么?为什么用B+树,不是B树或者跳跃表

        3、什么是索引覆盖,索引下推

        4、那些情况索引会失效

                1)联合索引不满足最左匹配原则。

                2)模糊查询最前面的为不确定匹配字符。

                3)索引列参与了运算。

                4)索引列使用了函数。

                5)索引列存在类型转换。

                6)索引列使用 is not null 查询。

                通俗讲就是不能最快速直接的通过b+数找到复合条件的数据就不会走索引了

        5、什么是聚簇索引和非聚簇索引

        6、使用索引一定能使查询更快吗?如果不能,什么情况下不能

                需要回表的

        7、数据库有哪些基本数据类型   

                MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。

        8、varchar和char有什么区别

                varchar变长字符串,char定长字符串

        9、如何优化select语句

        10、数据库的触发器有什么作用

        11、行锁,表锁?

        12、什么是事务?事务的作用?事务有哪些隔离等级?mysql默认的隔离等级是?

        13、并发会给数据库带来什么问题?脏读、幻读、...

三、redis相关

        1、redis的基本数据类型

                string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。

        2、redis有哪些应用场景

        3、如何保持redis与数据库的数据一致性

        4、如果更新了一个数据,是先更新redis还是数据库,为什么?

四、前端知识

        1、如何阻止默认事件

        2、angular中的数据双向绑定是怎么实现的

        3、父子组件之间是如何传值的

        4、localStorage跟sessionStorage的区别

        5、rxjs跟promise的区别,优缺点

        6、promise.race   promise.all的作用分别是什么

        7、做鉴权时,cookie和session、token区别

        8、什么是路由守卫

        9、什么是拦截器

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pchaoda

感谢支持~~~~~~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值