The `print' statement
=====================
print_stmt: "print" [ expression ("," expression)* [","] ]
`print' evaluates each expression in turn and writes the resulting
object to standard output (see below). If an object is not a string,
it is first converted to a string using the rules for string
conversions. The (resulting or original) string is then written. A
space is written before each object is (converted and) written, unless
the output system believes it is positioned at the beginning of a line.
This is the case (1) when no characters have yet been written to
standard output, (2) when the last character written to standard output
is `\n', or (3) when the last write operation on standard output was
not a `print' statement. (In some cases it may be functional to write
an empty string to standard output for this reason.)
A `\n' character is written at the end, unless the `print' statement
ends with a comma. This is the only action if the statement contains
just the keyword `print'.
Standard output is defined as the file object named `stdout' in the
built-in module `sys'. If no such object exists, or if it does not
have a `write()' method, a `RuntimeError' exception is raised.
`print' also has an extended form, defined as
print_stmt: "print" ">>" expression [ ("," expression)+ [","] ]
In this form, the first expression after the `>'`>' must evaluate to a
"file-like" object, specifically an object that has a `write()' method
as described above. With this extended form, the subsequent
expressions are printed to this file object. If the first expression
evaluates to `None', then `sys.stdout' is used as the file for output.