• day 013总结


    迭代器

    可迭代对象

    __iter--()方法的对象就是可迭代对象,除了数字类型之外都是可迭代对象。

    迭代器对象

    具有__iter__()__next__()方法的叫迭代器对象,只有文件是迭代器对象

    迭代器对象提供了不依赖索引取值的手段

    for循环原理

    for循环本质就是一个while循环,只不过是一个可控的while循环

    lt = [1,2,3]
    for i in lt:   # 可迭代对象;迭代器对象  # 不依赖索引取值,而是迭代取值
        print(i)
    
    lt=[1,2,3]
    lt_iter=lt.__iter__()
    while Ture:
    	try:
            print(lt_iter.__next__())
        except StopIteration:
            break
    

    1.首先使用iter把lt变成迭代器对象,对于文件也要使用iter方法把文件iter下

    2.然后使用next方法进行迭代取值

    3.判断stopiteration异常,遇到异常终止

    迭代器对象一定是可迭代对象,可迭代对象不一定是迭代器对象

    三元表达式

    print(x) if x>y else print(y)
    

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

    列表推导式

    lt=[i for i in range(10)]
    print(lt)
    lt=[i**2(可以做运算) for i in range(10)]
    

    字典生成式

    lt1=['a','b','c']
    lt2=[1,2,3]
    dic={k:v**2 for k,v in zip(lt1,lt2)}
    print(dic)#{'a': 1, 'b': 4, 'c': 9}
    

    生成器表达式

    g=(i for i in range(10))
    print(g)
    for i in g:
        print(i)
    #<generator object <genexpr> at 0x000002D0F10E6BA0>
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    

    生成器

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

    def ge():
        yield 3#一个yield相当于一个next:暂停函数
        yield 4
    print(ge())#<generator object ge at 0x00000246292A6BA0>
    g=ge()
    print(g.__next__())#3
    print(g.__next__())#4
    

    yield的函数

    1.暂停战术

    2.通过next取值

    return的特性

    1.终止函数

    2.通过调用函数拿到值

    def range(start):
        count=0
        while count<start:
            yield count
            count+=1
    for i in range(10):
        print(1)
    #0
    #1
    #2
    #3
    #4
    #5
    #6
    #7
    #8
    #9
    

    递归

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

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

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

    count=0
    def a():
        global count
        count+=1
        print(count)
        if count==5:
            return 
        a()
    a()
    
    def age(x):
        if x==0:
            return 18
        x-=1
        return age(x)+2
    res=age(6)
    print(res)#32
    
  • 相关阅读:
    2020年12月-第02阶段-前端基础-品优购项目规范
    2020年12月-第02阶段-前端基础-CSS Day07
    2020年12月-第02阶段-前端基础-CSS Day06
    2020年12月-第02阶段-前端基础-CSS Day05
    2020年12月-第02阶段-前端基础-CSS Day04
    2020年12月-第02阶段-前端基础-CSS Day03
    2020年12月-第02阶段-前端基础-CSS Day02
    2020年12月-第02阶段-前端基础-CSS字体样式
    2020年12月-第02阶段-前端基础-CSS基础选择器
    2020年12月-第02阶段-前端基础-CSS初识
  • 原文地址:https://www.cnblogs.com/zqfzqf/p/11578465.html
Copyright © 2020-2023  润新知