On Sat, 31 Aug 2013 10:17:23 +0200, candide wrote: > What is the equivalent in Python 3 to the following Python 2 code: > > # ----------------------------- > for i in range(5): > print i, > # ----------------------------- > > ? > > Be careful that the above code doesn't add a trailing space after the > last number in the list,
Of course it does. Have you actually tried it? The interactive interpreter is tricky, because you cannot directly follow a for-loop with another statement. If you try, the interactive interpreter gives you an indentation error. But we can work around it by sticking everything inside an if block, like so: py> if True: ... for i in range(5): ... print i, ... # could be pages of code here ... print "FINISHED" ... 0 1 2 3 4 FINISHED Or you could stick the code inside an exec, which doesn't have the same limitation as the interactive interpreter. This mimics the behaviour of code in a file: py> exec """for i in range(5): ... print i, ... print "FINISHED" ... """ 0 1 2 3 4 FINISHED The same results occur with any other Python 2.x, and indeed all the way back to Python 1.5 and older. > hence the following Python 3 code isn't strictly equivalent: > > > # ----------------------------- > for i in range(5): > print(i, end=' ') # <- The last ' ' is unwanted > print() The last space is exactly the same as you get in Python 2. But really, who cares about an extra invisible space? In non-interactive mode, the two are exactly the same (ignoring the extra print() call outside the loop), but even at the interactive interpreter, I'd like to see the code where an extra space makes a real difference. -- Steven -- http://mail.python.org/mailman/listinfo/python-list