from time import clock
def test_return(n):
def f(x):
if x % 2:
return None
return x
s = 0
for x in xrange(n):
r = f(x)
if r is not None:
s += r
return s
def test_except(n):
def f(x):
if x % 2:
raise StopIteration()
return x
s = 0
for x in xrange(n):
try:
s += f(x)
except StopIteration:
pass
return s
N = 1000000
t = clock()
print test_return(N)
print 'Return: ', clock() - t
t = clock()
print test_except(N)
print 'Raise: ', clock() - t
ZnJvbSB0aW1lIGltcG9ydCBjbG9jawoKZGVmIHRlc3RfcmV0dXJuKG4pOgogICAgZGVmIGYoeCk6CiAgICAgICAgaWYgeCAlIDI6CiAgICAgICAgICAgIHJldHVybiBOb25lCiAgICAgICAgcmV0dXJuIHgKICAgIHMgPSAwCiAgICBmb3IgeCBpbiB4cmFuZ2Uobik6CiAgICAgICAgciA9IGYoeCkKICAgICAgICBpZiByIGlzIG5vdCBOb25lOgogICAgICAgICAgICBzICs9IHIKICAgIHJldHVybiBzCgpkZWYgdGVzdF9leGNlcHQobik6CiAgICBkZWYgZih4KToKICAgICAgICBpZiB4ICUgMjoKICAgICAgICAgICAgcmFpc2UgU3RvcEl0ZXJhdGlvbigpCiAgICAgICAgcmV0dXJuIHgKICAgIHMgPSAwCiAgICBmb3IgeCBpbiB4cmFuZ2Uobik6CiAgICAgICAgdHJ5OgogICAgICAgICAgICBzICs9IGYoeCkKICAgICAgICBleGNlcHQgU3RvcEl0ZXJhdGlvbjoKICAgICAgICAgICAgcGFzcwogICAgcmV0dXJuIHMKCk4gPSAxMDAwMDAwCgp0ID0gY2xvY2soKQpwcmludCB0ZXN0X3JldHVybihOKQpwcmludCAnUmV0dXJuOiAnLCBjbG9jaygpIC0gdAoKdCA9IGNsb2NrKCkKcHJpbnQgdGVzdF9leGNlcHQoTikKcHJpbnQgJ1JhaXNlOiAnLCBjbG9jaygpIC0gdA==