title: python yield and stopiteration in one loop?
body: <p>i have a generator where i would like to add an initial and final value to the actual content, it's something like this:</p>
  
  <pre><code># any generic queue where i would like to get something from
  q = Queue()
  
  def gen( header='something', footer='anything' ):
      # initial value header
      yield header
  
      for c in count():
          # get from the queue
          i = q.get()
          # if we don't have any more data from the queue, spit out the footer and stop
          if i == None:
              yield footer
              raise StopIteration
          else:
              yield i
  </code></pre>
  
  <p>Of course, the above code doesn't work - my problem is that i would like it such that when there's nothing left in the queue, i want the generator to spit out the <code>footer</code> AND raise the <code>StopIterator</code>. any ideas?</p>
  
  <p>Cheers,                </p>