可能重复:
字符串格式化选项:优缺点
有什么区别
"%.2f" % x
Run Code Online (Sandbox Code Playgroud)
和
"{:.2f}".format(x)
Run Code Online (Sandbox Code Playgroud)
我对应该使用哪种方法以及Python的哪个版本感到有点困惑.
一般来说,你想使用第二种形式(.format())它更新,另一种最终会消失(至少那是某种意图 - 见下面的注释).
引用Python Python 3.0中的新功能文档:
用于内置字符串格式化操作的新系统取代了%字符串格式化操作符.(但是,%运算符仍然受支持;它将在Python 3.1中弃用,稍后将从语言中删除.)阅读PEP 3101以获取完整的独家新闻.
.format() 至少从Python 2.6开始提供
有关高级字符串格式的更多信息(PEP 3101)
备注:
@Duncan还提到了一个线程的引用,该线程讨论了%基于以下注释的格式是否会消失.@NedBatchelder在Python 3.2文档中引用了这个明确的引用:" ... there are no current plans to deprecate printf-style formatting."