En Python parece que hay dos maneras diferentes de generar la salida con formato:Manera de impresión de Python: ¿con 'formato' o forma de porcentaje?
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))
¿Hay una manera de ser preferido sobre el otro? ¿Son equivalentes, cuál es la diferencia? ¿Qué forma debería usarse, especialmente para Python3?
La nueva documentación dice esto sobre el operador de porcentajes: "Las operaciones de formateo descritas aquí muestran una variedad de peculiaridades que conducen a un número de errores comunes ... "pero está ** no ** obsoleto. http://docs.python.org/3/library/stdtypes.html#printf-style-string-formatting – guettli
No está oficialmente obsoleto, pero se recomienda no usarlo. – BrenBarn
Relacionados: http://bugs.python.org/issue14123 – guettli