我对Python字符串格式化程序%d和%i之间的区别感到困惑。 Python手册页将它们解释为同样的事情,'有符号整数十进制' - 混淆了!
答案 0 :(得分:5)
他们是完全一样的。
Python继承了C语法,您可以 在scanf()
函数中使用相同的格式来解析输入到变量中。然后,您可以使用%i
接受带有0x
前缀的十六进制格式的整数,前面带有0
的八进制表示法,以及常规十进制(基数10)整数,而{ {1}}格式化程序严格只接受十进制整数输入。
在使用%d
函数输出时,您可以使用printf
和%x
将输出格式化为十六进制和八进制,显式,始终和%o
和{ {1}}只是同义词并输出十进制整数。 Python继承了%d
格式批发,别名和所有格式,即使%i
区别没有等价物。
较新的Format Specification Mini-language(在str.format()
method和format()
function中使用)完全取消了printf
格式化程序;只有scanf
仍在那里。