Reputation: 27748
This code is from http://docs.python.org/2/tutorial/errors.html#predefined-clean-up-actions
with open("myfile.txt") as f:
for line in f:
print line,
What I don't understand is what's that ,
for at the end of print command.
I also checked doc, http://docs.python.org/2/library/functions.html#print.
Not understanding enough, is it a mistake?(it seems not. it's from the official tutorial).
I am from ruby/javascript and it's unusual for me.
Upvotes: 45
Views: 46396
Reputation: 11
in python 2.7:
print line,
in python 3.x:
print(line, end = ' ')
Upvotes: 0
Reputation: 8043
In python 2.7, the comma is to show that the string will be printed on the same line
For example:
for i in xrange(10):
print i,
This will print
1 2 3 4 5 6 7 8 9
To do this in python 3 you would do this:
for i in xrange(10):
print(i,end=" ")
You will probably find this answer helpful
Printing horizontally in python
---- Edit ---
The documentation, http://docs.python.org/2/reference/simple_stmts.html#the-print-statement, says
A '\n' character is written at the end, unless the print statement ends with a comma.
Upvotes: 60
Reputation: 308530
It prevents the print
from ending with a newline, allowing you to append a new print
to the end of the line.
Python 3 changes this completely and the trailing comma is no longer accepted. You use the end
parameter to change the line ending, setting it to a blank string to get the same effect.
Upvotes: 15
Reputation: 7334
From Python trailing comma after print executes next instruction:
,
in a print statement prevents a new line to be emitted.Upvotes: 5