yield结果没有返回2

请问大家为什么这个代码yield返回的结果会少了一个2呢?
代码如下:

def count_down(n):
    while n>=0:
        nx=yield n
        print("nx=",nx)
        n-=1
lis=count_down(5)
for i in lis:
    print(i)
    if i==3:
        lis.send(100)

python返回的结果如下:

5
nx= None
4
nx= None
3
nx= 100
nx= None
1
nx= None
0
nx= None

我预计的结果是nx=100后面有一个2,然后才是nx=none5,像这样:

5
nx= None
4
nx= None
3
nx= 100
2
nx= None
1
nx= None
0
nx= None

结果证明我错了,请问是哪里出现了问题呢?

send() 有返回值,会返还下一项
可以把最后改成

if i==3:
    ret = lis.send(100)
    print(ret)