Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 什么';这是%d和%s的目的_Python_Python 3.x - Fatal编程技术网

Python 什么';这是%d和%s的目的

Python 什么';这是%d和%s的目的,python,python-3.x,Python,Python 3.x,在你因为我问这个问题而对我生气之前,我一直在寻找答案,但似乎仍然不知道他们到底在做什么。 我在SOF上看到了一个名为“marcog”的用户的回答。例如: name = "marcog" number = 42 print "%s %d" (name, number) 然后我删除了这个部分,代码仍然输出完全相同的内容 name = "marcog" number = 42 print(name, number) 你能简要解释一下我们使用它们的原因吗? 顺便说一下,我正在使用3.3.1。它告诉打

在你因为我问这个问题而对我生气之前,我一直在寻找答案,但似乎仍然不知道他们到底在做什么。 我在SOF上看到了一个名为“marcog”的用户的回答。例如:

name = "marcog"
number = 42
print "%s %d" (name, number)
然后我删除了这个部分,代码仍然输出完全相同的内容

name = "marcog"
number = 42
print(name, number)
你能简要解释一下我们使用它们的原因吗?
顺便说一下,我正在使用3.3.1。

它告诉
打印
输出一个字符串(
%s
)和一个有符号整数(
%d
)。如果您想获得更复杂的输出,这将更有用。例如:

print("Hello %s your number is %d" % (name, number))
使用您给定的示例值,这将输出:

你好,马可。你的电话号码是42


它们用于使用
%
(模)运算符进行字符串格式化(主要包括变量)。它主要基于C的标准lib printf调用-完整文档如下:


字符串格式化是一种字符串操作,因此它不一定需要与打印语句一起使用

my_string = "%s %d"%("foo bar", 5)
foo, bar, five = my_string.split()
print("%s %d %s"%(bar, five, foo))

正如史提夫的答案所示,当你所做的是打印出两个变量之间的空格时,差异并不十分有意义,但是当你使用一个较大的字符串中间的格式说明符,比如%D和%s,那么差别就变得更加明显了。在某些情况下,格式说明符还允许您指定更多格式信息,例如字段宽度、小数位数等。问题明确提到了Python 3,您使用了Python 2语法。+1链接到文档,而其他答案都没有