Python中%i和%d之间有什么区别?

时间:2013-07-16 15:04:52

标签: python python-2.7 integer string-formatting number-formatting

好的我正在调查数字格式,我发现您可以使用%d %i 来格式化整数。例如:

number = 8
print "your number is %i." % number

number = 8
print "your number is %d." % number

但有什么区别?我的意思是我找到了一些东西,但这完全是胡言乱语。有人在这里说温和代码或英语吗?

3 个答案:

答案 0 :(得分:16)

Python复制了C格式化指令。

对于输出%i%d在Python和C中完全相同。

不同之处在于,当您使用scanf()函数在C中解析输入时,它们会做什么。请参阅Difference between format specifiers %i and %d in printf

Python没有等效的scanf,但Python字符串格式化操作保留了两个与C保持兼容的选项。

新的str.format()format() format specification mini-language放弃了对i的支持,仅停留在d

答案 1 :(得分:2)

没有,请参阅Python String Formatting Manual: http://docs.python.org/2/library/stdtypes.html#string-formatting

答案 2 :(得分:1)

没有区别。

这里是the proof.

有两个原因的原因是,%i只是%d的替代,如果你想在高层看它(从python的角度来看)。

以下是python.org对%i的评价:Signed integer decimal.

并且%d:Signed integer decimal.

%d代表十进制,%i代表整数。

但两者都相同,你可以同时使用它们。