In Python 3, "end =' '" appends space instead of newline.
You can clear up this invalid syntax in Python by switching out the semicolon for a colon. Here, once again, the error message is very helpful in telling you exactly what is wrong with the line.
The end parameter in the print function is used to add any string. At the end of the output of the print statement in python. By default, the print function ends with a newline. Passing the whitespace to the end parameter (end=' ') indicates that the end character has to be identified by whitespace and not a newline.
The print statement in Python 2 has no attribute "end". It should just be print(x) or print x. Show activity on this post. Hence you not being able to access the end= method.
Are you sure you are using Python 3.x? The syntax isn't available in Python 2.x because print
is still a statement.
print("foo" % bar, end=" ")
in Python 2.x is identical to
print ("foo" % bar, end=" ")
or
print "foo" % bar, end=" "
i.e. as a call to print with a tuple as argument.
That's obviously bad syntax (literals don't take keyword arguments). In Python 3.x print
is an actual function, so it takes keyword arguments, too.
The correct idiom in Python 2.x for end=" "
is:
print "foo" % bar,
(note the final comma, this makes it end the line with a space rather than a linebreak)
If you want more control over the output, consider using sys.stdout
directly. This won't do any special magic with the output.
Of course in somewhat recent versions of Python 2.x (2.5 should have it, not sure about 2.4), you can use the __future__
module to enable it in your script file:
from __future__ import print_function
The same goes with unicode_literals
and some other nice things (with_statement
, for example). This won't work in really old versions (i.e. created before the feature was introduced) of Python 2.x, though.
How about this:
#Only for use in Python 2.6.0a2 and later
from __future__ import print_function
This allows you to use the Python 3.0 style print
function without having to hand-edit all occurrences of print
:)
In python 2.7 here is how you do it
mantra = 'Always look on the bright side of life'
for c in mantra: print c,
#output
A l w a y s l o o k o n t h e b r i g h t s i d e o f l i f e
In python 3.x
myjob= 'hacker'
for c in myjob: print (c, end=' ')
#output
h a c k e r
First of all, you're missing a quote at the beginning but this is probably a copy/paste error.
In Python 3.x, the end=' '
part will place a space after the displayed string instead of a newline. To do the same thing in Python 2.x, you'd put a comma at the end:
print "Building internam Index for %d tile(s) ..." % len(inputTiles),
I think he's using Python 3.0 and you're using Python 2.6.
This is just a version thing. Since Python 3.x the print is actually a function, so it now takes arguments like any normal function.
The end=' '
is just to say that you want a space after the end of the statement instead of a new line character. In Python 2.x you would have to do this by placing a comma at the end of the print statement.
For example, when in a Python 3.x environment:
while i<5:
print(i)
i=i+1
Will give the following output:
0
1
2
3
4
Where as:
while i<5:
print(i, end = ' ')
i=i+1
Will give as output:
0 1 2 3 4
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With