这份python与爬虫面试题,将带你杀穿面试官

本文介绍了Python面试中常见的问题,包括any()和all()方法的使用,copy()与deepcopy()的区别,魔法方法的作用,内置数据类型,可变与不可变类型,is与==的比较,类方法、实例方法和静态方法的差异,内存泄露的定义及避免方法,以及read、readline、readlines的文件读取区别。通过这些知识点,帮助你更好地准备Python和爬虫面试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、python常见面试题

1、简述any()和all()方法

any()只要迭代器中有一个元素为真就为真

all()迭代器中所有判断项返回都为真,结果才为真

(python中什么元素为假:0,空字符串、空列表、空字典、空元组、None、False)

2、python中copy()和deepcopy()区别

(1) 复制不可变数据类型,不管copy还是deepcopy,都是同一个地址当浅复制的值是不可变对象(数值,字符串,元组)时和=“赋值”的情况一样,对象的id值与浅复制原来的值相同。

(2) 复制的值是可变对象(列表和字典)

浅拷贝copy有两种情况:第一种情况:复制的 对象中无 复杂 子对象,原来值的改变并不会影响浅复制的值,同时浅复制的值改变也并不会影响原来的值。原来值的id值与浅复制原来的值不同。第二种情况:复制的对象中有 复杂 子对象(例如列表中的一个子元素是一个列表), 改变原来的值 中的复杂子对象的值 ,会影响浅复制的值。

深拷贝deepcopy:完全复制独立,包括内层列表和字典。

3、列出几种魔法方法并简要介绍用途

init:对象初始化方法

new:创建对象时候执行的方法,单列模式会用到

str:当使用print输出对象的时候,只要自己定义了str(self)方法,那么就会打印从在这个方法中return的数据

del:删除对象执行的方法

4、python内建数据类型有哪些

整型--int

布尔型--bool

字符串--str

列表--list

元组--tuple

字典--dict

5、可变类型和不可变类型

可变类型有list,dict.不可变类型有string,number,tuple. 当进行修改操作时,可变类型传递的是内存中的地址,也就是说,直接修改内存中的值,并没有开辟 新的内存。不可变类型被改变时,并没有改变原内存地址中的值,而是开辟一块新的内存,将原地址中的值复制 过去,对这块新开辟的内存中的值进行操作。

6、is和==有什么区别?

is:比较的是两个对象的id值是否相等,也就是比较俩对象是否为同一个实例对象。是否指向同一个内 存地址 == :比较的两个对象的内容/值是否相等,默认会调用对象的eq()方法

7、Python中类方法、类实例方法、静态方法有何区别?

类方法: 是类对象的方法,在定义时需要在上方使用 @classmethod 进行装饰,形参为cls,表示类对象, 类对象和实例对象都可调用 类实例方法: 是类实例化对象的方法,只有实例对象可以调用,形参为self,指代对象本身; 静态方法: 是一个任意函数,在其上方使用 @staticmethod 进行装饰,可以用对象直接调用,静态方法 实际上跟该类没有太大关系

8、内存泄露是什么?如何避免?

内存泄漏指由于疏忽或错误造成程序未能释放已经不再使用的内存。内存泄漏并非指内存在物理上的消 失,而是应用程序分配某段内存后,由于设计错误,导致在释放该段内存之前就失去了对该段内存的控 制,从而造成了内存的浪费。有 _del_() 函数的对象间的循环引用是导致内存泄露的主凶。不使用一个对象时使用: del object 来 删除一个对象的引用计数就可以有效防止内存泄露问题。通过Python扩展模块gc 来查看不能回收的对象的详细信息。可以通过 sys.getrefcount(obj) 来获取对象的引用计数,并根据返回值是否为0来判断是否内存泄露

9、python常见的列表推导式?

[表达式 for 变量 in 列表] 或者 [表达式 for 变量 in 列表 if 条件]

10、简述read、readline、readlines的区别?

read 读取整个文件 readline 读取下一行 readlines 读取整个文件到一个迭代器以供我们遍历

 

 由于篇幅过长,需要完整版PDF,请私博主!(888)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值