装饰器day13课堂小结

迭代器

迭代器:不是函数,只是一个称呼而已

python中一切皆对象(数据类型)

可迭代对象,含有._ _ iter _. _方法的数据类型就叫做可迭代对象,

除了数字类型,所有数据类型都是可迭代对象。

使用--iter--之后变成迭代器

迭代器对象:含有——iter——和——next——方法的对象就是迭代器对象。

只有文件是迭代器对象

迭代器使用--iter--依然是迭代器

fw.--iter--()

fw.--next--()

作用:提供了 不依赖索引取值的手段

for循环原理(for循环本质就是一个while循环,只不过是一个一定可控的while循环)

三元表达式

if x > y :
    print(x)
else:
    print(y)
    
# 三元表达式

print(x) if x > y else print(y) # 仅作了解

条件走这里 if 条件 else 条件不成立走这里

列表推导式

lt = []

for i in range(10):
    lt.append(i)
    
    
print(lt)
lt = [i for i in range(10)]
print(lt)

字典生成式

dic = {}

for i in range(10):
    dic[i] = i
    
    
print(dic)
dic = {i:i**2 for i in range(10)}# key:value
print(dic)

两个列表快速生成一个字典

lt1 = ['a','b','c']
lt2 = [1,2,3]

res = zip(lt1,lt2)

# for k,v in res
# print(k,v)

dic = {k:v**2 for k,v in res}
print(dic)

{'a':1,'b':4,'c':9}

生成器

generator 本质是一个迭代器 ---》生成器:本质就是迭代器,生成器就是一个自定义的迭代器

生成器:含有yield关键字的函数叫做生成器,不是函数

def g():
    yield 3# 一个yiled想到与一个next;暂停函数
    yield 4

    
g = g() #生成器

for i in g:
    print(i)
    

3
4

g()得到一个生成器-》生成器本质是迭代器

yield的特性

  1. 暂停函数
  2. 通过next取值

return的特性

  1. 终止函数
  2. 通过调用函数拿到值

递归

传递;回归

递归:函数a内部直接调用函数a本身

def a():
    x = 1
    print(x)
    a()
    

    
a()

每一次递归,都不会结束函数,并且每一次递归都会开辟内存空间,如果一直开辟内存就炸掉了,所以最多递归1000次

真正的递归必须得有 退出条件

count = 0
def a():
    global count
    count += 1
    print(count)
    if count == 5:
        return
    a()


a()
posted @ 2019-09-24 21:40  shinzz  阅读(90)  评论(0编辑  收藏  举报