06-Python迭代器与生成器

1.迭代器是一个可以记住遍历位置的对象;迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问才会结束,且只能前进不能后退。迭代器有两个基本方法:iter()和next()。

L = ['6','7','8','9']
# 创建迭代器
itr = iter(L)

# print(next(itr))
# print(next(itr))
# print(next(itr))
# print(next(itr))

# 遍历
m = 0
while m < len(L):
    try:
        print(next(itr))
    # Python异常处理
    except StopIteration:
        break

# 迭代器对象可以使用for循环遍历
for item in itr:
    print(item)

2.在Python,使用了yield的函数被称为生成器

    ①、生成器就是一个返回迭代器的函数,只能用于迭代操作。

    ②、在调用生成器过程中每次遇到yield时函数会暂停保存当前的所有运行信息,返回yield值,并在下一次执行next方法时从当前位置继续执行

    注:感觉就像一个循环被分次使用,每使用一次next()执行一次循环,每次循环完成返回yield值

# 生成器函数 - 斐波那契
def fibonacci(n):
    a,b,count = 0,1,0
    while count <= n:
        yield b
        a,b = b,a+b
        count += 1

ftr = fibonacci(10)

while True:
    try:
        print(next(ftr))
    except StopIteration:
        break

3.Python异常处理

name = 'CaiBird_'
del name

# 捕获异常
try:
    print('输出名字:',name)
except (NameError,TypeError):
    print('name or type error diy')
finally:
    print('Goodbye, world!')

# 抛出异常
raise StopIteration

 

转载于:https://my.oschina.net/CoderW/blog/994582

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值