Bug or intended behavior?
Terry Reedy
tjreedy at udel.edu
Tue Jun 6 13:16:00 EDT 2017
On 6/5/2017 1:01 PM, Peter Pearson wrote:
> On Fri, 2 Jun 2017 10:17:05 -0700 (PDT), sean.dizazzo at gmail.com wrote:
> [snip]
>>>>> print "foo %s" % 1-2
>> Traceback (most recent call last):
>> File "<stdin>", line 1, in <module>
>> TypeError: unsupported operand type(s) for -: 'str' and 'int'
>
> Others have already pointed out that you're assuming the
> wrong precedence:
>
> Say
> "foo %s" % (1-2)
> not
> ("foo %s" % 1) - 2
> .
>
> Personally I prefer a less compact but more explicit alternative:
>
> "foo {}".format(1-2)
More compact:
>>> f'foo {1-2}'
'foo -1'
--
Terry Jan Reedy
More information about the Python-list
mailing list