I think a better Python version would be
print '\n'.join(['Hello world'] * 100)
No need for exec. print '\n'.join(['Hello world'] * 100)
No need for exec. print "Hello world\n"*100
Would have worked just fine. for i in xrange(100):
statement
into: exec "statement" * 100
The 'no exec' alternatives propose something not as generic since they can only print something a number of times. print "Hello, World\n" * 100
No need for join either, and ends with a newline