[Tutor] Escape codes and 'return statements'

alan.gauld@bt.com alan.gauld@bt.com
Thu, 17 Aug 2000 11:37:16 +0100

> Hi this is Albert,
>     I'm currently learning Python and I came across this 
> things called "escape codes". I understand fairly most of 
> them except for the escape codes ' \n ' and (linefeed???) and 
> ' \r ' (carriage return).

I assume you are confused about the difference?
Back in the mists of computing time(up until the 
late 1970's) computers had teletypes for input/output

Teletypes had rolls of paper on which the printing was 
done and you could issue a linefeed to move the roll 
up one line at a time. This was mechanically much more 
efficient than moving up and moving the carriage back 
each time so if you wanted 3 blank lines you issued 3 

They also had carriage return to bring the printhead back 
to the beginning of the line. Thus typically the user would 
type(or the program would output) a carriage return followed 
by one or more line feeds.

These two motions got encapsulated in ASCII by the control 
chararacters ^J(linefeed) and ^M(carriage return/linefeed)

With the advent of VDUs the need for a separate linefeed 
diminished and mostly we just use carriage return/linefeed 
as a single 'newline' command.

Thus '\r' is a pure linefeed with no c/r and '\n' combines 
both motions.

I'm not sure if there is a character for c/r only (which 
can be usefgul for controlling old printers which can only 
use one color per line - multiple passes allows multiple 
colors in a line, for example)

Does that help in any way?
Mostly you just need to use '\n'....

Alan G.

>     Also, I kinda understand 'return' statements but I would 
> like to know on how and when to use them properly.Thanks in advance.

Oooh thats a religious question. :-)
Simply put return causes an immediate return from the current 
function. Purists like to see a single return statement per 
function. Those of us brought up on C tend to use them rather 
more liberally!

Alan G.