Ah, the one element I forgot about...precedence. :) Thanks for the info. "Grant Edwards" <grante at visi.com> wrote in message news:slrn9dn5k4.bt5.grante at isis.visi.com... > In article <NpMC6.4660$4I5.385432 at news1.rdc1.mb.home.com>, Brad Bollenbach wrote: > > > print "%s " + \ > > "%s" % ("hello", "world") > > > >Results in "TypeError: not all arguments converted". > > >but this: > > > > print ("%s " + \ > > "%s") % ("hello", "world") > > > >prints "hello world" as well. > > > >Shouldn't Python be smart enough to know that even without ()'s around the > >whole thing, this is all one line (therefore avoiding the current > >odd/unexpected IMHO behaviour with the format string)? After all, I'm > >telling it this much by using the line continuation character "\" aren't I? > > It's got nothing to do with the continuation character or being all one > line. Putting it all on one line results in the same "unexpected" behavior: > > >>> print "%s " + "%s" % ('hello', 'world') > Traceback (innermost last): > File "<stdin>", line 1, in ? > TypeError: not all arguments converted > > The "%" operator has a higher precedence than the "+" operator. > Without the explicit grouping, what you have is (in effect) > > print "%s" + ("%s" % ('hello','world)) > > The format "%" operator sees the format sting "%s" and the data value of > ('hello','world'). You've provided two pieces of data and a format string > that only converts one of them. > > -- > Grant Edwards grante Yow! Two LITTLE black > at dots and one BIG black > visi.com dot...nice 'n' FLUFFY!!
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4