Python面试题第一章
深浅拷贝是什么
| 浅拷贝和深拷贝: |
| 浅拷贝是在内存创建一块新的内存地址,创建一个新的对象,但是里面的元素是原对象中各个子对象的引用 |
| 深拷贝是在内存创建一块新的内存地址,创建一个新的对象,并将原对象中的元素,以递归的方式,通过创建新的子对象拷贝到新对象中。 因此,新对象和老对象没有任何关联 |
| |
| |
| 深浅拷贝是对数据进行复制, |
| 对于不可变类型来说深浅拷贝都是一样的重新拷贝一份数据, |
| 对于可变类型来说如果内部嵌套的还有不可变类型, |
| 浅拷贝只拷贝第一层,嵌套的拷贝是内存地址, |
| 深拷贝是完全在复制一份出来 |
魔法方法new和init有什么区别
| init是类() 自动触发类中的魔法方法,实例化一个对象 |
| 但是在init更早之前其实有个new方法 |
| new方法才是第一个对象实例化的时候所调用的方法,是真正意义上的构造方法 |
| new方法有一个return的返回值 如果new方法没有返回实例对象,init方法不会触发 |
| |
| new是类初始化自动触发,产生一个空对象 第一个参数是传给init的 |
| Init也类初始化自动触发,给new产生的对象设置初始值 |
python的可变和不可变数据类型是什么
| 不可变类型: 数字 字符串str 元组,布尔 |
| 值改变 内存地址不变 |
| 可变类型:list列表 dict字典 集合 文件对象 |
| 值改变 内存地址改变 |
什么是生成器,有什么应用场景
| 生成器也是迭代器 不过多了一个yield关键字 |
| 形成生成器 |
| 携程 |
| 上下文管理器 |
| |
| 进行文件操作时,如果文件过大,一次性打开,会占用过多内存空间可能会造成内存溢出,使用生成器用多少拿多少,减少内存消耗 |
| |
数据库的三大范式是什么
范式:关系型数据库中,数据表设计的基本原则、规则称之为范式,是我们在设计数据库中需要遵守的规则和方法。
| |
| ChatGpt回答: |
| 1.第一范式(1NF): |
| 数据表中的每一列都应该是原子性的,不可再分。也就是说,每个数据表必须有一个主键,并且每一列都应该与主键相关 |
| 2. 第二范式(2NF): |
| 在满足第一范式的基础上,非主键列必须完全依赖于非主键列必须完全依赖于主键,而不能只依赖于部分主键。也就是说,每个非主键列都应该与主键有关系,而不能只与某个部分主键相关。 |
| |
| 3. 第三范式(3NF):在满足第二范式的基础上,非主键列之间不能相互依赖,而应该互相独立。也就是说,每个非主键列都应该只与主键相关,而不应该与其他非主键列相关。 |
| |
| 通过满足这些范式,可以避免数据冗余、数据更新异常等问题,提高数据库的数据完整性和查询效率。 |
| |
| |
| |
| 1.数据库的三大范式 |
| 第一范式(1NF)是指数据库表的每一列都是不可分割 |
| |
| 第二范式(2NF):如果表是单主键,那么主键以外的列必须完全依赖于主键:如果表是复合主键,那么主键以外的列必须完全依赖于主键,不能仅依赖主键的一部分。 |
| |
| 第三范式(3NF)要求: 表中的非主键列必须和主键直接相关而不能间接相关: 也就是说: 非主键列之间不能相关依赖 不存在传递依赖 |
| |
mysql有哪些索引类型,分别有什么作用
索引:对于数据库中的一行或者多行值进行排序的一种结构---->可以加快检索表中的数据
| 聚簇索引,聚集索引,主键索引,主键,如果不存在主键,隐藏一个主键,构造聚簇索引 |
| 辅助索引, 普通索引 index |
| 唯一索引 unique |
| 联合索引,组合索引,多列索引: unique_togethere |
| |
| 索引的选择应该根据具体的业务需求和数据特点来进行,需要根据实际情况选择合适的索引类型以提高查询效率。 |
事务的特性和隔离级别
| 事务的四大特性: |
| 原子性: |
| |
| 隔离性: |
| |
| 一致性: |
| |
| 持久性: |
| |
| |
| 隔离级别: |
| |
| |
| |
| |
MySQL事务隔离级别:
| 读取未提交:最低的隔离级别,允许读取尚未提交的数据变更,可能造成脏读,不可重复读,幻读 |
| |
| 读取已提交:允许读取并发事物已经提交的数据,可以避免脏读,但是可能造成不可重复读,幻读 |
| |
| 可重复读:对于同一字段多次读取的结果都是一致的,除非本身事物修改,可避免脏读和不可重复读,但是可能会造成幻读 |
| |
| 可串行化:最高的隔离级别,完全服从隔离级别,所有的事物依次执行,可以避免脏读、不可重复读、幻读 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构