%-style tends to be briefer, but also more limited. .format() has some advantages:
- allows user-defined classes to provide their own formatting flags,
- can access attributes of objects
though in your example with floats, neither of those is an advantage.
Both of these techniques will continue to work, so which you use is up to you. There had been an idea that %-formatting would be removed from Python 3, but that is no longer true. See the 3.2 docs:
As the new String Formatting syntax is more flexible and handles tuples and dictionaries naturally, it is recommended for new code. However, there are no current plans to deprecate printf-style formatting.