有人可以解释这些Python字符串格式化程序

时间:2015-05-10 02:53:22

标签: python string python-2.7 string-formatting

我对Python字符串格式化程序%d和%i之间的区别感到困惑。 Python手册页将它们解释为同样的事情,'有符号整数十进制' - 混淆了!

Python string formatters

From the Python 'Built in Types' page

1 个答案:

答案 0 :(得分:5)

他们是完全一样的。

Python继承了C语法,您可以 scanf()函数中使用相同的格式来解析输入到变量中。然后,您可以使用%i接受带有0x前缀的十六进制格式的整数,前面带有0的八进制表示法,以及常规十进制(基数10)整数,而{ {1}}格式化程序严格只接受十进制整数输入。

在使用%d函数输出时,您可以使用printf%x将输出格式化为十六进制和八进制,显式,始终和%o和{ {1}}只是同义词并输出十进制整数。 Python继承了%d格式批发,别名和所有格式,即使%i区别没有等价物。

请参阅printfscanf联机帮助页。

较新的Format Specification Mini-language(在str.format() methodformat() function中使用)完全取消了printf格式化程序;只有scanf仍在那里。