本篇是【Python面试必刷题系列】的第5篇文章。通过收集、整理Python真实面试题,给大家讲解面试中的python高频考察点,希望能够引起读者的足够重视。
往期回顾:
Python必刷面试题(1)
Python必刷面试题(2)
Python必刷面试题(3)
Python必刷面试题(4)
Python中 is 和 == 有什么区别?
(1)==是比较运算符,用来比较两个对象的value(值)是否相等。
(2)is也叫做同一性运算符,用来比较对象间的唯一身份标识(id)是否一致。
请看示例:
a = b = "abc"
X = "abc"
print a == b # True
print a == X # True
print a is b # True
print a is X # True
a = b = [1, 2, 3]
X = [1, 2, 3]
print a == b # True
print a == X # True
print a is b # True
print a is X # False
结论:只有数值型和字符串型比较,a is X才为True,当是tuple,list,dict或set型时,a is X为False。
原因:id(a) != id(X),感兴趣的同学可以试一下。
列举sort 和 sorted 的区别
sort 只是应用在 list 上的方法,就地排序,无返回值。
sorted 是内建函数,对所有可迭代的对象都可进行排序,返回新的list。
sorted 语法:
sorted(iterable, key=None, reverse=False)
参数说明:
- iterable -- 可迭代对象。
- key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
- reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)。
什么是猴子补丁?
在运行期间动态修改一个类或模块,叫做猴子补丁(Monkey Patch)。