title: python generator yield statement not yield
body: <p>Here is code I am running:</p>
  
  <pre><code>def infinite_Third() -&gt; Generator:
      num = 1
      while True:
          if num % 3 ==0:
              i = (yield num)
              if i is not None:
                  num = i
          num += 1 
  
  if __name__=='__main__':
      third_gen = infinite_Third()
      for i in third_gen:
          print(f"it is {i}")          
          if i&gt;1000:
              break    
          third_gen.send(10*i+1) 
  </code></pre>
  
  <p>I am expecting to see results as:</p>
  
  <pre><code>it is 3
  it is 33
  it is 333
  it is 3333
  </code></pre>
  
  <p>However, what I really get is:</p>
  
  <pre><code>it is 3
  it is 36
  it is 366
  it is 3666
  </code></pre>
  
  <p>I think this might be related to using <code>send</code> in the main code, but couldn't figure out why. Can anyone help?</p>