def a_generator_func( ) :
print ( "about to yield first value" )
yield "first value"
print ( "just yielded first value" )
print ( "about to yield second value" )
yield "second_value"
print ( "done yielding, there is no third value" )
a_generator = a_generator_func( )
print ( "About to get first value" )
print ( "The first value is" , next( a_generator) )
print ( "About to get second value" )
print ( "The second value is" , next( a_generator) )
try :
print ( "About to get third value" )
print ( "The third value is" , next( a_generator) )
except StopIteration :
print ( "The generator ended" )
# for elem in a_generator_func():
# print(elem)
ZGVmIGFfZ2VuZXJhdG9yX2Z1bmMoKToKICAgIHByaW50KCJhYm91dCB0byB5aWVsZCBmaXJzdCB2YWx1ZSIpCiAgICB5aWVsZCAiZmlyc3QgdmFsdWUiCiAgICBwcmludCgianVzdCB5aWVsZGVkIGZpcnN0IHZhbHVlIikKCiAgICBwcmludCgiYWJvdXQgdG8geWllbGQgc2Vjb25kIHZhbHVlIikKICAgIHlpZWxkICJzZWNvbmRfdmFsdWUiCiAgICBwcmludCgiZG9uZSB5aWVsZGluZywgdGhlcmUgaXMgbm8gdGhpcmQgdmFsdWUiKQoKCmFfZ2VuZXJhdG9yID0gYV9nZW5lcmF0b3JfZnVuYygpCgpwcmludCgiQWJvdXQgdG8gZ2V0IGZpcnN0IHZhbHVlIikKcHJpbnQoIlRoZSBmaXJzdCB2YWx1ZSBpcyIsIG5leHQoYV9nZW5lcmF0b3IpKQpwcmludCgiQWJvdXQgdG8gZ2V0IHNlY29uZCB2YWx1ZSIpCnByaW50KCJUaGUgc2Vjb25kIHZhbHVlIGlzIiwgbmV4dChhX2dlbmVyYXRvcikpCnRyeToKICAgIHByaW50KCJBYm91dCB0byBnZXQgdGhpcmQgdmFsdWUiKQogICAgcHJpbnQoIlRoZSB0aGlyZCB2YWx1ZSBpcyIsIG5leHQoYV9nZW5lcmF0b3IpKQpleGNlcHQgU3RvcEl0ZXJhdGlvbjoKICAgIHByaW50KCJUaGUgZ2VuZXJhdG9yIGVuZGVkIikKCiMgZm9yIGVsZW0gaW4gYV9nZW5lcmF0b3JfZnVuYygpOgojICAgICBwcmludChlbGVtKQ==