Python 使用%d不会输出整数

Python 使用%d不会输出整数,python,integer,string-formatting,Python,Integer,String Formatting,我发现很难理解%d格式说明符。从文档中,我知道它是整数的占位符,但在我使用它时,它的行为似乎不是这样的: >>> x=1 >>> x 1 >>> v = "%d" % x >>> v '1' 你能解释一下为什么它返回的是字符串而不是整数吗?它的作用与%s%d的意思是“有符号整数十进制的字符串表示法”,因此返回一个字符串该%d用于表示作为字符串格式传递的参数的十进制形式。这就是为什么'%d'%4为您提供'4'。如果执行'%

我发现很难理解
%d
格式说明符。从文档中,我知道它是整数的占位符,但在我使用它时,它的行为似乎不是这样的:

>>> x=1
>>> x
1

>>> v = "%d" % x
>>> v
'1'

你能解释一下为什么它返回的是字符串而不是整数吗?它的作用与
%s

%d
的意思是“有符号整数十进制的字符串表示法”,因此返回一个字符串该%d用于表示作为字符串格式传递的参数的十进制形式。这就是为什么
'%d'%4
为您提供
'4'
。如果执行
'%d'%0b101
,您将获得
'5'
。如果使用十六进制,情况也是如此。它提供一个格式化为字符串的十进制数

v=“%d”%x


%d是变量字符串中的占位符。V是一个字符串,如引号和%d所述(这是一个整数的字符串表示形式),因此x被转换为字符串以表示“V”。

您希望得到什么结果?它格式化输入(在本例中为整数)转换为字符串。@Junuxx:一个整数而不是字符串。它的工作原理似乎与您所描述的一样,您认为它会这样做。
x
已经是一个整数,您不需要做任何事情就可以将其转换为整数。%s将输出相同的内容,对吗?那么,这两者之间有什么区别呢?@normal反常:不同的格式选项:尝试
打印“%04d%04s”%(1,1)
,而且“%s”%1.3给出了“1”哦,是的,很好。它是十进制(以10为基数)数的整数表示形式。