生成器和三元表达式

一、生成器

1、生成器:
    生成器就是一种自定义的迭代器
2、为何要用生成器:
    为了节省内存
3、如何用生成器:
    函数体内但凡出现yield关键字,调用函数将不会触发函数体代码的运行,而是会返回一个生成器对象,生成器本质就是一个迭代器
4、yield与return:
     相同点:在返回值角度用法一样
     不同点:yield可以返回值多次值,而return只能返回一次
yield可以暂停函数,然后我们可以用next方法触发函数代码的运行-》协程
示例:
def func():
    print("11111")
    yield 1
    print("22222")
    yield 2
    print("33333")
    yield 3
    print("4444")

g=func().__iter__()
print(g)  # 生成器本质就是一个迭代器
print(next(g))
print(next(g))
print(next(g))
==============》
<generator object func at 0x00000284DA750200>
11111
1
22222
2
33333
3
def my_range(start,stop,step=1):
    while start < stop:
        yield start
        start+=step
for i in my_range(0,10,2):
    print(i)
=================》
0
2
4
6
8

二、三元表达式

三元表达式:if的一种简易表达
好处:代码行数减少,可读性高
通常的if格式:
def max2(x, y):
    if x > y:
        return x
    else:
        return y
res = max2(11, 22)
print(res)
=========》
22
三元if格式:
x = 11
y = 22
res = x if x > y else y
print(res)
res = "ok" if 10 > 3 else "no"
print(res)
============》
22
ok
原文地址:https://www.cnblogs.com/qiukangle/p/14115624.html