01-15 71—75


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 。實際上就是返回另外一個生成器
''


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM