Tim Roberts <[EMAIL PROTECTED]> wrote: > Bruno Desthuilliers <[EMAIL PROTECTED]> wrote: > > >Sion Arrowsmith a écrit : > >> A.M <[EMAIL PROTECTED]> wrote: > >> > >>>I found print much more flexible that write method. > >> > >> "more flexible"? More convenient, yes. More powerful, maybe. But I > >> don't see more flexible. Everything print can to stdout.write() can > >> do. The reverse isn't true. eg (this appears to be a FAQ on this > >> group, although I can't find it in the FAQ): > >> > >> for x in range(10): > >> sys.stdout.write(str(x)) > >> > >> to print: > >> > >> 0123456789 > > > >The reverse isn't true ??? > > > > print "".join(str(x) for x in range(10)) > > What he meant it that it is impossible to produce "0123456789" using 10 > separate print statements, while it IS possible with 10 separate writes.
it's not quite impossible, just cumbersome: >>> for x in range(10): ... print x, ... sys.stdout.softspace=0 ... 0123456789>>> Yes, you do need the softspace assignments -- but then, in the write version you need the explicit str calls, so it's not as if in either case you're using "just" the print or write-call. The differences in terms of convenience are surely there (in different circumstances they will favor one or the other of the two approaches), but I don't see such differences in either flexibility or power (if one ignores the issue of convenience, the same tasks can be performed with either approach). Alex -- http://mail.python.org/mailman/listinfo/python-list