>
> The 'print' statement is hardcoded to add a space between elements.
> print is meant to make output easy, at the cost of control.
Well, that was a good example. I had prepared Notes for myself also along the
same lines.
print and softspace in python
In python, whenever you use >>>print statement it will append a newline by
default. If you don't want newline to be appended, you got use a comma at the
end (>>>print 10,)
When, you have a list of characters and want them to be printed together a
string using a for loop, there was observation that no matter what there was
space coming between the characters. No split or join methods helped.
>>>list1=['a','b','c']
>>>for e in list1:
print e,
a b c
>>># Without whitespace it will look like.
>>>print "abc"
abc
The language reference says that print is designed to output a space before any
object. And some search goes to find and that is controlled by softspace
attribute of sys.stdout.
Way to print without leading space is using sys.stdout.write()
>>>import sys
>>>for e in list1:
sys.stdout.write(e)
abc
Reference manual says:
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.)
Not getting the last part as how you will write a empty string and use print
not appending blank space in a single line
http://phoe6.livejournal.com/50886.html
--
O.R.Senthil Kumaran
http://uthcode.sarovar.org
_______________________________________________
Tutor maillist - [email protected]
http://mail.python.org/mailman/listinfo/tutor