On Sat, 13 Mar 2010 01:04:42 pm Ray Parrish wrote: > > print "A %s with dimensions %sx%s has an area of %s." % > > (choice, height, width, width*height) > > Hello, > > Isn't it a little more understandable to use a > construct like the following? > > >>> print "The area of a " + Choice + "is " str(Width) + " x " + > str(Height) + " equals " + str(Width * Height) + " > square feet" > > The area of a rectangle is 12 x 10 equals 120 > square feet. > > I find that putting the variables on the end like > that, when you're not actually applying any special formatting to them > makes it less readable > when I'm debugging my stuff, or when someone else > is reading my code, > and trying to understand it.
Of course you are welcome to use whatever coding standards you like, but I think you will find that among experienced coders, you are in a vanishingly small minority. As a beginner, I found string interpolation confusing at first, but it soon became second-nature. And of course, there are legions of C coders who are used to it. I find an expression like: "The area of a " + Choice + "is " str(Width) + " x " + str(Height) + "equals " + str(Width * Height) + "square feet" difficult to follow: too many quotes, too many sub-expressions being added, too many repeated calls to str(), it isn't clear what is the template and what is being inserted into the template. It is too easy to miss a quote and get a SyntaxError, or to forget to add spaces where needed. To me, this is MUCH easier: template = "The area of a %s is %s x %s equals %s square feet" print template % (Width, Height Width*Height) One pair of quotes instead of five, no problems with remembering to add spaces around pieces, and no need to explicitly call str(). -- Steven D'Aprano _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor