在Python中,当你使用2个加号之间的变量时,它会调用什么?

时间:2014-08-17 02:19:58

标签: python variables

使用加号将变量拉入字符串时会调用什么?

示例1:

variable = "stuff"
print "I would like to print "+variable+" "

为什么会使用vs

示例2:

variable = "stuff"
print "I would like to print %s" % variable

我是整个编程事物和本网站的新手,请原谅我的无知,如果我缺乏正确的礼仪,请纠正我。

2 个答案:

答案 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内的字符串添加到其中。 稍后你会添加另一个字符串,这次是一个只包含“空格”字符的字符串。 结果字符串是打印的。