我对 Python 字符串格式化程序 %d 和 %i 之间的区别感到困惑。 Python 手册页将它们解释为同一件事,“signed integer decimal” - 混淆!
请您参考如下方法:
它们是完全相同的东西。
Python 继承了 C 的语法,您可以也在 scanf() 函数中使用相同的格式将输入解析为变量。然后,您可以使用 %i 接受带有 0x 前缀的十六进制格式的整数、前面带有 0 的八进制符号以及常规范式十进制(以 10 为底)整数,而 %d 格式化程序严格只接受十进制整数输入。
然而,在使用 printf 函数输出时,您将使用 %x 和 %o 将输出格式化为十六进制和八进制,明确, always 和 %d 和 %i 只是同义词和输出十进制整数。 Python 全面继承了 printf 格式、别名和所有格式,尽管 scanf 没有等效的区别。
较新的Format Specification Mini-language (用于 str.format() method 和 format() function )完全取消了 i 格式化程序;只有 d 保留在那里。
