01-15 71—75

______egon新书python全套来袭请看:https://egonlin.com/book.html

71、请实现一个装饰器,通过一次调用使函数重复执行5次。

# 答案
def again_func(func):

    def inner(*args, **kwargs):

        for line in range(5):

            func(*args, **kwargs)

    return inner

@again_func
def func1():
    print('from func1...')

func1()

72、python 一行 print 出 1~100 偶数的列表, (列表推导式, filter 均可)

# 答案
print([i for i in range(1, 101) if i % 2 == 0])

print(list(filter(lambda x: x % 2 == 0, range(1, 101))))

73、解释生成器与函数的不同,并实现和简单使用generator

# 答案
'''
生成器和函数的主要区别在于函数return avalue,生成器yield  a  value,同事标记或记忆point of the yield 以便在下次调用时从标记点恢复执行,yield使用函数转换成生成器,而生成器反过来有返回迭代器。
'''

74、请写出打印结果:

# 例 1
def func(a,b=[]):
    b.append(a)
    print(b)
func(1)
func(1)
func(1)
func(1)

# 例 2
def func(a,b={}):
    b[a] = 'v'
    print(b)
    
func(1)
func(2)

# 答案:
'''
例1:
[1]
[1, 1]
[1, 1, 1]
[1, 1, 1, 1]

例2:
{1: 'v'}
{1: 'v', 2: 'v'}

'''

75、简述yield和yieldfrom关键字。

# 答案:
'''
yield:
	当一个函数中出现yield关键字的时候,那么这个函数就是一个生成器。可以用for循环或者next()函数来迭代。

yield from:
	简单地说,yield from  generator 。实际上就是返回另外一个生成器
''
posted @ 2019-10-22 19:55  小猿取经-林海峰老师  阅读(1249)  评论(0编辑  收藏  举报