[Python-Dev] Replacement for print in Python 3.0

Nick Coghlan ncoghlan at gmail.com
Sun Sep 4 05:54:15 CEST 2005

Nick Coghlan wrote:
> Nick Coghlan wrote:
>>I agree with this point actually. There should be an "iterable" formatting 
>>code that looks something like "%[sep]i"
>>Then "%i" % (my_seq,) would be the equivalent of "".join(my_seq), only 
>>allowing it to be easily embedded inside a larger format string.
>>Some other examples:
>>("% i" % my_seq)  => " ".join(my_seq)
>>("%, i" % my_seq) => ", ".join(my_seq)
>>I see this as being similar to the way that "%.2f" controls the way that a 
>>floating point value is displayed.
> A correction to this - such a formatting operator would need to automatically 
> invoke str on the items in the iterable:
> ("%i" % (my_seq,))  => "".join(map(str, my_seq))
> ("% i" % (my_seq,))  => " ".join(map(str, my_seq))
> ("%, i" % (my_seq,)) => ", ".join(map(str, my_seq))
> ("%(seq), i" % dict(seq=my_seq)) => ", ".join(map(str, my_seq))

Hmm, 'i' is already taken. I think I'll use 'j for join' while working on a 
patch. The full specification of the number formatting operations is 
impressive, though (this is the first time I've actually read the full 
description of the string formatting behaviour).


Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia

More information about the Python-Dev mailing list