[Tutor] carriage return on windows

Alan Gauld alan.gauld at freenet.co.uk
Sun Jan 30 09:56:49 CET 2005


> print "Percent completed:" + str(percent) + "\r"
>
> Which should send me back to the beginning of the line and overwrite
it
> with a new line.  But instead I get:
>
> Percent completed: 50
> Percent completed: 51

Print always adds a newline unless you put a comma at the end.
Unfortunately that results in a character being lost too so I
recommend using a tab at the front like this:

for n in range(20):
    print "\tAt line: %5s" % n

Also be aware that on sime systems \r is the newline character
in which case the method I use is to backspace the number of
characters occupied by my data (5 in the case above) using
\010.

Something like this slightly flawed example:

>>> def f():
...   print "Label:    ",
...   for n in range(5):
...      print "%s%3s" % ('\010' * 3, n),
...

I'll leave debugging it as an excercise for the reader! :-)

HTH,

Alan G
Author of the Learn to Program web tutor
http://www.freenetpages.co.uk/hp/alan.gauld



More information about the Tutor mailing list