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.
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.