生成器函数

Pyhon优雅的魔力使生成器函数很特殊,它们像定格相机一样工作。

当一个标准函数遇到return语句时,它会返回值,然后函数会丢弃内部的所有数据。当下次调用时,一切从头开始。

yield语句会做不同的事情。它像return一样返回一个值,但是它不会使函数丢弃数据,相反所有数据都被保存起来。

 #/usr/bin/python3
  2 #coding:utf-8
  3 
  4 #生成器函数 yield
  5 def odds(start = 1):
  6     '''return all odd numbers from start updates'''
  7     if int(start) % 2 == 0:  
  8         start = int(start) + 1
  9     while True:
 10         yield start
 11         start += 2
 12 
 13 if __name__ == "__main__":
 14     lis = [m*m for m in range(1,13) if not m*m %2] #生成器表达式
 15     print(lis)
 16 
 17     for n in odds():
 18         if n > 7:
 19             break
 20         else:
 21             print(n)
 22 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值