On Sat, 08 Apr 2006 22:54:17 -0700, Ju Hui wrote:

> I want to print 3 numbers without blank.
[snip]
> how to print
> 012
> ?

Method one: accumulate your numbers into a single string, then print it in
one go.

>>> L = []
>>> for x in range(3):
...     L.append(str(x))
... 
>>> print ''.join(L)
012
>>> 


Or even:

>>> print ''.join(map(str, range(3)))
012
>>> 


Or use a list comprehension:

>>> print ''.join([str(x) for x in range(3)])
012
>>> 



Method two: don't use the print statement, but write directly to standard
output.

>>> import sys
>>> for x in range(3):
...     sys.stdout.write(str(x))
...
012>>>


But notice how this does not write a newline when you are done -- you will
have to remember to do it yourself with sys.stdout.write('\n').

Also, print will work with any object, but sys.stdout.write will only work
with strings:

>>> print 6
6
>>> sys.stdout.write(6)
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
TypeError: argument 1 must be string or read-only character buffer, not int
>>>



-- 
Steven.

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to