str.format () был представлен в Python 2.6, но он стал предпочтительным методом форматирования строк в Python 3.0.
В Python 2.6 оба метода, конечно, будут работать.
Все зависит от того, кто будет потребителем вашего кода. Если вы ожидаете, что большинство ваших пользователей не будут использовать Python 3.0, используйте старое форматирование.
Однако, если в Python 3.0 есть какая-то обязательная функция, необходимая для вашего проекта, то вполне разумно требовать от пользователей использования определенной версии интерпретатора. Имейте в виду, однако, что Python 3.0 ломает некоторый код до 3.0.
Итак, если вы хотите использовать Python 3.0, используйте str.format (). Если вы нацелены на Pyhon <3.0, используйте форматирование%. </p>