学习目标:掌握Python的基础,如元组、字典、列表、集合、迭代器、生成器、闭包、装饰器,了解python的多线程、内存管理、垃圾回收机制!(技巧:简历的专业技能也可以这么写哦!)
一、高频考题
1、元组和列表的区别:
元组使用小括号,列表使用方括号
元组声明和赋值后,不能像列表一样添加、删除和修改元素,也就是说元组在程序运行过程中不能被修改。列表在声明和赋值后,可以添加、删除和修改元素。tuple一旦初始化就不能修改,而且没有append()insert()这些方法,可以获取元素但不能赋值变成另外的元素。
Tuple由于其不可变性,适合表示一些不需要修改的数据,如日期、坐标等;List适合表示需要频繁修改的数据集合,如存储多个用户的信息。
Tuple在内存上的开销较小,存储的是对象的引用;List需要额外的内存来存储每个元素以及对其他对象的引用。
由于Tuple的不可变性,其访问速度比List更快,适合只需访问元素而不需要修改的数据。
2、列表、元组、集合、字典的区别是什么
3、深拷贝和浅拷贝的区别是什么
深拷贝(Deep Copy)和浅拷贝(Shallow Copy)是在复制对象或数据结构时所使用的两种不同的拷贝方法,它们之间的区别主要在于拷贝的程度和对原始对象内部结构的影响。
浅拷贝(Shallow Copy)
浅拷贝创建一个新的对象,但是只复制原始对象的基本数据类型的字段或引用(地址),而不复制引用指向的对象。这意味着新对象和原始对象中的引用指向相同的对象。
如果原始对象中的字段是基本数据类型,那么这些字段会被复制到新对象中,而如果字段是引用类型,则新对象和原始对- 象的对应字段将引用同一个对象。
因此,对新对象所做的修改可能会影响到原始对象,因为它们共享相同的引用。
深拷贝(Deep Copy)
深拷贝创建一个新的对象,并且递归地复制原始对象的所有字段和引用指向的对象,而不仅仅是复制引用本身。
深拷贝会递归复制整个对象结构,包括对象内部的对象,确保新对象和原始对象之间的所有关系都是独立的。
这意味着对新对象所做的修改不会影响到原始对象,因为它们拥有彼此独立的副本。
4、迭代器是什么?生成器是什么?两者的关系是什么?
5、什么是闭包?什么是装饰器?
6、说一下python的多线程、多进程、协程、守护进程/守护线程是什么?
7、解释一下python的GIL锁
8、python的内存管理是什么?
9、Python的垃圾回收机制是什么?
10、Python的内存泄露怎么办?怎么提高Python的执行效率?
二、Python基础知识
记住Python一切皆对象,对象的三大要素是:类型、值、地址
1、is 和 == 的区别是什么?
2、Python 的基础类型有哪些?
3、可变对象和不可变对象是什么?分别有哪些?
4、什么是值传递、什么是引用传递?
5、如何合并两个字典
6、面向对象的三大特征是什么?
7、什么是多态?
8、什么是鸭子类型?
三、Python常识性的知识
1、*arg 和**karg的区别是什么?
2、匿名表达式了解吗?列表推导式了解吗?
3、pass语句的作用是什么?
4、read、readline、readlines的区别是什么?
5、解释一下with关键字、解释一下self关键字
6、Python常用的内置包有哪些?
7、你用过哪些pip的第三方包?
三、Python常识性的知识
1、*arg 和**karg的区别是什么?
2、匿名表达式了解吗?列表推导式了解吗?
3、pass语句的作用是什么?
4、read、readline、readlines的区别是什么?
5、解释一下with关键字、解释一下self关键字
6、Python常用的内置包有哪些?
7、你用过哪些pip的第三方包?
题目来源:敲代码的毛毛虫(牛客)