使用加号将变量拉入字符串时会调用什么?
示例1:
variable = "stuff"
print "I would like to print "+variable+" "
为什么会使用vs
示例2:
variable = "stuff"
print "I would like to print %s" % variable
我是整个编程事物和本网站的新手,请原谅我的无知,如果我缺乏正确的礼仪,请纠正我。
答案 0 :(得分:3)
你是连接字符串,而不是在两个+
标志之间放置任何东西。将此与数字相加:
4 + 5 + 6
这对5
没有什么特别之处,那只是(4 + 5) + 6
的总和。你的表达式只是在字符串中添加一个值,然后添加另一个字符串。
您应尽可能使用字符串格式,因为它更具可读性并为您提供更大的灵活性。考虑学习str.format()
,这是一种更一致,更强大的字符串格式化版本:
variable = "stuff"
print "I would like to print {}".format(variable)
mapping = {'answer': 42, 'interest': 0.815}
print '''\
The answer to the ultimate question: {m[answer]:>10d}
Rate: {m[interest]:03.2%}!'''.format(m=mapping)
演示:
>>> variable = "stuff"
>>> print "I would like to print {}".format(variable)
I would like to print stuff
>>> mapping = {'answer': 42, 'interest': 0.815}
>>> print '''\
... The answer to the ultimate question: {m[answer]:>10d}
... Rate: {m[interest]:03.2%}!'''.format(m=mapping)
The answer to the ultimate question: 42
Rate: 81.50%!
答案 1 :(得分:1)
+
(加号)实际上是一个重载运算符。它适用于加法,就像你总和两个整数(1+1
)时一样,但它也适用于字符串。实际上,您不需要在要与字符串“求”(连接)的变量的两侧使用它,以使其工作,您只是将一个额外的空格连接到打印字符串的末尾。 / p>
一些例子:
print 1 + 1 #this prints 2
str = "a"
print str + "b" #this prints ab
print 1 + "b" #this will error as python doesn't know by default how to "sum" an integer to a string
注意添加两个整数的行为与连接两个字符串的行为有根本的不同。如果您执行"1"+"1"
,则无法获得字符串"2"
,您将获得字符串"11"
。这就是重载的全部意义。
回到你的例子:
variable = "stuff" #this is a string
print "I would like to print "+variable+" "
此处"I would like to print "
和" "
都是字符串。
您正在创建第一个字符串,然后将variable
内的字符串添加到其中。
稍后你会添加另一个字符串,这次是一个只包含“空格”字符的字符串。
结果字符串是打印的。