python 面试基础考试题收集

默认参数
#
如果默认参数的值是一个可变数据类型,那么每次调用函数的时候,如果不传值就公用这个数据类型的资源 def f(k, l = {}): l[k] = 'a' print(l) f(1) #{1:a} f(2) #{1:a, 2:a} f(3) #{1:a, 2:a, 3:a}
生成器相关
def demo(): for i in range(4): yield i g=demo() g1=(i for i in g) g2=(i for i in g1) print(list(g1)) # [0,1,2,3] print(list(g2)) # [] # 生成器只能取一次值再取就空了

生成器表达式相关、生成器

生成器是在调用时才真的执行代码
def
add(n,i): return n+i def test(): for i in range(4): yield i g=test() for n in [1,10]: g=(add(n,i) for i in g) # n = 1 # g = (add(n,i) for i in (0,1,2,3)) # n = 10 # g = add(10,i) for i in g => add(10,i) for i in (add(n,i) for i in (0,1,2,3)) 在list(g)是生成器才真正去执行,此时n = 10 # g = add(10,i) for i in (add(10,i) for i in (0,1,2,3)) # g = add(10,i) for i in (10, 11, 12, 13) # g = (20,21,22,23) print(list(g)) # list(g) 才开始执行此时n =10
# [20, 21, 22, 23]

猜你喜欢

转载自www.cnblogs.com/directiones/p/10863480.html