有人可以解释这些 Python 字符串格式化程序吗
Can someone please explain these Python string formatters
我对 Python 字符串格式化程序 %d 和 %i 之间的区别感到困惑。 Python 手册页将它们解释为同一件事,“有符号整数十进制”- 混淆!
它们是完全相同的东西。
Python 继承了 C 的语法,您可以 也 在 scanf()
函数中使用相同的格式将输入解析为变量。然后,您可以使用 %i
接受带有 0x
前缀的十六进制格式整数、前面带有 0
的八进制表示法以及常规十进制(基数 10)整数,而 %d
格式化程序严格只接受十进制整数输入。
然而,在使用 printf
函数输出时,您将使用 %x
和 %o
将输出格式化为十六进制和八进制,明确地,总是,和 %d
和 %i
只是同义词和输出十进制整数。 Python 继承了 printf
格式批发、别名和所有格式,即使 scanf
区别没有等效项。
较新的 Format Specification Mini-language (used in both the str.format()
method and the format()
function) 完全取消了 i
格式化程序;只有 d
留在那里。
我对 Python 字符串格式化程序 %d 和 %i 之间的区别感到困惑。 Python 手册页将它们解释为同一件事,“有符号整数十进制”- 混淆!
它们是完全相同的东西。
Python 继承了 C 的语法,您可以 也 在 scanf()
函数中使用相同的格式将输入解析为变量。然后,您可以使用 %i
接受带有 0x
前缀的十六进制格式整数、前面带有 0
的八进制表示法以及常规十进制(基数 10)整数,而 %d
格式化程序严格只接受十进制整数输入。
然而,在使用 printf
函数输出时,您将使用 %x
和 %o
将输出格式化为十六进制和八进制,明确地,总是,和 %d
和 %i
只是同义词和输出十进制整数。 Python 继承了 printf
格式批发、别名和所有格式,即使 scanf
区别没有等效项。
较新的 Format Specification Mini-language (used in both the str.format()
method and the format()
function) 完全取消了 i
格式化程序;只有 d
留在那里。