В Python, кажется, существуют два разных способа создания форматированного вывода:
user = "Alex"
number = 38746
print("%s asked %d questions on stackoverflow.com" % (user, number))
print("{0} asked {1} questions on stackoverflow.com".format(user, number))
Есть ли способ быть предпочтительным по сравнению с другим? Являются ли они эквивалентными, в чем разница? Какую форму следует использовать, особенно для Python3?