可能重复:
字符串格式选项:优点和缺点
有什么区别
"%.2f" % x
和
"{:.2f}".format(x)
我对应该使用哪种方法以及哪个版本的 Python 有点困惑。
一般来说,您想使用第二种形式 ( .format()
),它较新,而另一种最终会消失(至少在某些时候这是意图 - 请参阅下面的注释)。
引用 Python What's New In Python 3.0文档:
用于内置字符串格式化操作的新系统替换了 % 字符串格式化操作符。(但是,仍然支持 % 运算符;它将在 Python 3.1 中弃用,并在稍后从该语言中删除。)阅读 PEP 3101 以获得完整的独家新闻。
.format()
至少从 Python 2.6 开始可用
备注:
@Duncan 还提到了一个线程的引用,该线程讨论了%
基于格式是否/何时会在下面的评论中消失。@NedBatchelder 从Python 3.2 文档中得到了明确的引用:“ ... there are no current plans to deprecate printf-style formatting.
”
%-style 往往更简洁,但也更有限。.format() 有一些优点:
尽管在您使用浮点数的示例中,这些都不是优势。
这两种技术都将继续有效,因此您使用哪种技术取决于您。有一个想法是 %-formatting 将从 Python 3 中删除,但这不再是真的。请参阅3.2 文档:
由于新的字符串格式化语法更加灵活,并且可以自然地处理元组和字典,因此建议用于新代码。但是,目前没有弃用 printf 样式格式的计划。