python面试题(34-44)
34,Python垃圾回收机制?
35,列举常用的内置函数
bin() bool() dict() float() hash() input() int() len() list() max() print() range() set() type() str()
dir() [函数不带参数时,返回当前范围内的变量,方法和定义的类型列表]
eval() [函数执行一个字符串表达式,返回表达式的值]
36,filter,map,reduce 的作用?
-
filter : 过滤 筛选满足条件的那些数据
-
map : 映射 用同样方法把所有数据都改成别的
-
reduce: 化简 对数组中的所有内容进行汇总
38 def func(a,b=[]) 这种写法有什么坑?
def func(a,b=[]):
b.append(a)
print(b)
func(1)
func(1)
func(1)
func(1)
看下结果
[1] [1, 1] [1, 1, 1] [1, 1, 1, 1]
函数的第二个默认参数是一个list,当第一次执行的时候实例化了一个list,第二次执行还是用第一次执行的时候实例化的地址存储,所以三次执行的结果就是 [1, 1, 1] ,想每次执行只输出[1] ,默认参数应该设置为None。
39 谈谈你对闭包的理解?
在一个外函数中定义了一个内函数,内函数里运用了外函数的临时变量,并且外函数的返回值是内函数的引用。这样就构成了一个闭包。
40 os和sys模块的作用?
os模块负责程序与操作系统的交互,提供了访问操作系统底层的接口;sys模块负责程序与python解释器的交互,提供了一系列的函数和变量,用于操控python的运行时环境。**
41 简述 yield和yield from关键字。
-
yield 的作用就是把一个函数变成一个生成器,带有yield的函数不再是一个普通的函数
yield from generator 。实际上就是返回另外一个生成器
yield from 后面可以跟的式子有“ 生成器 元组 列表等可迭代对象以及range()函数产生的序列
42 有用过with statement吗?它的好处是什么?
with语句的作用是通过某种方式简化异常处理
自动管理文件关闭
43 什么是断言?应用场景?
在没有一个程序之前,我们不知道程序会在哪里出错,与其让它在运行中崩溃,不如在出现错误条件时就崩溃,这时候就需要assert断言的帮助
python assert断言是声明其布尔值必须为真的判定,如果发生异常就说明表达示为假
可以理解assert断言语句为raise-if-not,用来测试表示式,其返回值为假,就会触发异常。
44 json序列化时,默认遇到中文会转换成unicode,如果想要保留中文怎么办?
在序列化时,中文汉字总是被转换为unicode码,在dumps函数中添加参数ensure_ascii=False即可解决。