python闯关_Day008

第8章 迭代器

作业

1、自定义函数模拟range(1,7,2)

def myrange(start, stop, step=1):
    while start < stop:
        yield start
        start += step

target = myrange(1,7,2)
print (target.__next__())
print (target.__next__())
print (next(target))

  

2、模拟管道,实现功能:tail -f access.log | grep '404'#模拟tail -f | grep

import time
def mytail(file):
    with open(file,'rb') as f:
        f.seek(0,2)   #游标移到文件尾
        while True:
            line=f.readline()
            if line:
                yield line
            else:
                time.sleep(0.1)

def grep(pattern,lines):
    for line in lines:
        line=line.decode('utf-8')
        print(line)
        if pattern in line:
            print ('查找到了')
            yield line

for line in grep('404',mytail('access.log')):
    print(line,end='')

#with open('access.log','a',encoding='utf-8') as f:
#    f.write('出错啦404\n')
# 或手工在access.log中添加包含404的新行,即会打印出结果

  

3、编写装饰器,实现初始化协程函数的功能
4、实现功能:grep -rl 'python' /etc
5、Python语言 实现八皇后问题

猜你喜欢

转载自www.cnblogs.com/marathoner/p/10261467.html