Platform: Git bash MINGW64, Windows 7, 64 CMD When I run a Python code from Learn Python The Hard Way ex11. The code is simple.
print \"How old are you?\",
a
So I had a look at this and tried a couple of different ways of writing what you have there, and they all acted the same way. Digging into it some more I came across https://code.google.com/p/mintty/issues/detail?id=218. Key from this is andy.koppe's reply:
The key to the problem is that stdout's default buffering mode depends on the type of device: unbuffered for a console, buffered for a pipe. This means that in a console the output will appear immediately, whereas in mintty it will only appear once the buffer is either full or flushed, as happens at the end of main().
Windows Console prints text to the screen as soon as possible, while mingw (git bash) will wait until the application tells it to update the screen.
So to get it to behave the same in both, you will need to flush the buffer to the screen after each print. How to flush output of Python print? has information about how to do this, but it comes down to the following:
import sys
print "How old are you?"
sys.stdout.flush()
age = raw_input()
print "How tall are you?"
sys.stdout.flush()
height = raw_input()
print "How much do you weigh?"
sys.stdout.flush()
weight = raw_input()
print "So, you're %r old, %r tall and %r heavy." % (age, height, weight)
Alternatively you can run it in mingw using the -u command, which will stop python from buffering output in mingw.
python -u file.py