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