3

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

name = "marcog"
number = 42
print "%s %d" (name, number)

我当时所做的是删除这部分,代码仍然输出完全相同的内容。

name = "marcog"
number = 42
print(name, number)

您能否简要解释一下我们使用它们的原因?顺便说一句,我使用的是 3.3.1。

4

3 回答 3

12

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

print("Hello %s your number is %d" % (name, number))

使用您提供的示例值,这将输出:

你好,marcog,你的号码是 42

于 2013-06-12T19:29:48.237 回答
6

它们用于使用%(模)运算符进行字符串格式化(主要包含变量)。它在很大程度上基于 C 的标准 lib printf 调用——完整的文档在这里:

http://docs.python.org/2/library/stdtypes.html#string-formatting

于 2013-06-12T19:32:20.620 回答
2

字符串格式化是一种字符串操作,所以不一定需要和 print 语句一起使用。

my_string = "%s %d"%("foo bar", 5)
foo, bar, five = my_string.split()
print("%s %d %s"%(bar, five, foo))
于 2013-06-12T20:43:41.700 回答