[Tutor] To FORMAT or not to

Steven D'Aprano steve at pearwood.info
Sun Jan 3 20:13:13 EST 2016


On Sun, Jan 03, 2016 at 02:27:01PM +0200, yehudak . wrote:
> Hi there,
> In a program I wrote the following line (Python 3.5):
> 
> print("You've visited", island, '&', new + ".")
> 
> A programmer told me that it's a bad habit, and I should have used instead:
> 
> print("You've visited {0} {1} {2}{3}".format(island, "&", new, "."))
> 
> May I understand why?


This is nonsense. There is nothing wrong with using print they way you 
did.

print is designed to solve simple problems, and you had a simple 
problem. format is designed to solve complicated problems. You can use 
format, or % string interpolation, to solve simple problems too, but why 
bother? These four lines all do more or less the same thing:


print("You've visited", island, '&', new + ".")
print("You've visited {0} {1} {2}{3}".format(island, "&", new, "."))
print("You've visited {} & {}.".format(island, new))
print("You've visited %s & %s." % (island, new))


The second version is the LEAST sensible, it should be re-written as the 
third version. But apart from that minor difference, there's no 
practical difference between those lines. It is entirely a matter of 
personal taste which you use.

This doesn't mean that similar problems will also be a matter of 
personal taste. As the problem gets more complex, one or the other gets 
more appropriate. But there's nothing wrong with what you wrote.



-- 
Steve


More information about the Tutor mailing list