Python数字格式

Vas*_*lis 4 python formatting

可能重复:
字符串格式化选项:优缺点

有什么区别

"%.2f" % x
Run Code Online (Sandbox Code Playgroud)

"{:.2f}".format(x)
Run Code Online (Sandbox Code Playgroud)

我对应该使用哪种方法以及Python的哪个版本感到有点困惑.

Lev*_*von 7

一般来说,你想使用第二种形式(.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."