+1 I'm upvoting because I think the versions of the string formatting routines that you use are cleaner than my very old-fashioned ways. I prefer the first one where a meaningful name can be used.
Just to point out you can still use named fields in the newer PEP 3101.format syntax: "A{row} + B{row}".format(row=3). The 0 just means "use the first value".