python-day13

1.迭代器(iter)

1)迭代器是容器型类型

2) 怎么创建迭代器:

a.讲其他序列装换成迭代器
b.创建生产器

3)特点:打印的时候不能查看元素;

    无法获取元素个数;
    获取元素的时候必须将元素从迭代器中取出,取出后元素会从迭代器中消失,并且无法再添加;

2.迭代器获取元素

1)获取单个元素

next(迭代器) - 获取迭代器最前面的那个元素

2)遍历

for 变量 in 迭代器:

3.生成器

1) 生产器是容器型类型数据,但是生产器中存储的并不是数据,而是产生数据的算法

2)生产器就是迭代器

4.怎么创建生成器

调用一个带有yield关键字的函数就可以得到一个生成器对象

def str_new():
    for x in range(1,1000):
        yield f'stu{x:0>3}'
print(list(str_new()))

5.装饰器

装饰器=实参高阶函数+返回值高阶函数
装饰器是用来给已经定义好的函数添加功

添加功能:

1) 无参装饰器语法:

def 装饰器名称():
def 新函数名()
原函数返回值=原函数()
新增功能
retrun 元函数返回值
retrun 新函数名

2)有参数装饰器语法:

def 装饰器名称():
def 新函数名(*args,**kwargs):
原函数返回值=原函数(*args,**kwargs)
新增功能
retrun 元函数返回值
retrun 新函数名

# 练习:写一个装饰器在函数调用结束后打印千锋教育;
   
def add_logo(f):
   def new_f():
       result=f()
       print('千锋教育')
       return result
   return new_f
@add_logo
def func1():
   print('hello world')
print(func1())
def product_nums(f):
   def new_f():
       result=f()
       return result*100
   return new_f
@product_nums
def sum_nums():
   result=10
   return result
print(sum_nums())
上一篇:分享2个Python处理Excel的脚本


下一篇:Loj #2321. 「清华集训 2017」无限之环