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关键字。
  1. 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即可解决。

上一篇:对gererator函数的认识


下一篇:Python并发编程之从生成器使用入门协程(七)