假期ython学习第四日

Posted friendg

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了假期ython学习第四日相关的知识,希望对你有一定的参考价值。

迭代器,生成器

#对于序列类型:字符串,列表,元组,我们可以使用索引的方式迭代去除其他包含的元
#到那时对于字典,集合,文件等类型没有索引的,诺还想去除其内部包含的元素,则必
#须找出一种不依赖于索引的迭代方式,此为迭代器

#2.什么是可迭代对象
#可迭代对象指的是内置有__iter__方法的对象,即__iter__,如下

#什么是迭代器对象
#可迭代对象执行obk.__iter__()得到的结果就是迭代器对象
#而迭代器对象指的是即内置有__iter__又内置有__next__方法的对象
#4.注意:
#迭代器对象一定是可迭代对象,而可迭代对象不一定是迭代器对象
#优点:
#- 提供一种统一的、不依赖于索引的迭代方式
#- 惰性计算,节省内存
#缺点:
##- 无法获取长度(只有在next完毕才知道到底有几个值)
#- 一次性的,只能往后走,不能往前退

迭代器中yield会暂停并保存当前的运行信息,等到下次进行循环的时候,可以直接使用

import sys

def fb(n):
    a=0
    b=1
    counter=1
    while(counter<n):
        yield a
        a,b=b,a+b
        counter+=1
f=fb(10)
while True:
    try:
        print(next(f),end=" ")
    except StopIteration:
        sys.exit()

结果为技术图片

中间的yield用来保存运算进程并且保存a的值,进行下一次的运算

StopIteration用于停止进程


以上是关于假期ython学习第四日的主要内容,如果未能解决你的问题,请参考以下文章

十月四日oi学习督促计划

大家好,这是香港科技大学PyTorch四日速成教程

我的假期学习报告2

暑假假期周进度报告(第四周)

假期生活第二周总结

假期第一天,爬上来唠唠嗑