生成器函数:函数体内包含有yield关键字,该函数执行的结果是生成器

生成器就是迭代器

yield的功能:
1 与return类似,都可以返回值,但不一样的地方在于yield返回多次值,而return只能返回一次值
2 为函数封装好了__iter__和__next__方法,把函数 的执行结果做成了迭代器
3 遵循迭代器的取值方式obj.__next__(),触发的函数的执行,函数暂停与再继续的状态都是由yield保存
#注意__iter__()和__next__()后的()

三元表达式
x if x>y else y

列表解析
[i for i in l if i>50]

生成器表达式
(i for i in l if i>50)