Skip to main content
 首页 » 编程设计

python之有人可以解释一下这些 Python 字符串格式化程序吗

2025年05月04日59duanxz

我对 Python 字符串格式化程序 %d 和 %i 之间的区别感到困惑。 Python 手册页将它们解释为同一件事,“signed integer decimal” - 混淆!

From the Python 'Built in Types' page

请您参考如下方法:

它们是完全相同的东西。

Python 继承了 C 的语法,您可以也在 scanf() 函数中使用相同的格式将输入解析为变量。然后,您可以使用 %i 接受带有 0x 前缀的十六进制格式的整数、前面带有 0 的八进制符号以及常规范式十进制(以 10 为底)整数,而 %d 格式化程序严格只接受十进制整数输入。

然而,在使用 printf 函数输出时,您将使用 %x 和 %o 将输出格式化为十六进制和八进制,明确, always 和 %d 和 %i 只是同义词和输出十进制整数。 Python 全面继承了 printf 格式、别名和所有格式,尽管 scanf 没有等效的区别。

参见 printf和 scanf联机帮助页。

较新的Format Specification Mini-language (用于 str.format() method 和 format() function )完全取消了 i 格式化程序;只有 d 保留在那里。