>>2
Statements are my main gripe with Python. It's good at least some of them (print, exec) are going away. Now you can do f(print). You couldn't before. Statements are Fortran-derived dinosaurs that come with a huge cost and no real benefits, so they need to be killed with fire.
>>5
In Python 2.x, I *always* define In, Out and Err. If running on Windows, they'll be defined to raw_input(), print and sys.stderr.write, but I'll load my Unicode layer so I get a full Unicode console. On Linux, they're defined to sys.std* operations, but always encoding/decoding UTF-8. The idea is that I get a full, true, real Unicode terminal or console, the way it should have been done. I only read and write unicode objects. In fact I have killed str legacy gaystrings with fire.