The print statement
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 str. 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.) Note: Objects which act like file objects but which are not the built-in file objects often do not properly emulate this aspect of the file object’s behavior, so it is best not to rely on this.
A linefeed character (“\n”) 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.
print also has an extended form, defined by the second portion of the syntax described above. This form is sometimes referred to as
print chevron. 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.