小编典典

没有'+'运算符的字符串连接

python

我在玩python,我意识到我们不需要使用’+’运算符来连接字符串,除非它与值一起使用。

例如:

string1 = 'Hello'   'World'  #1 works fine
string2 = 'Hello' + 'World'  #2 also works fine

string3 = 'Hello'
string4 = 'World'
string5 = string3   string4  #3 causes syntax error
string6 = string3 + string4  #4 works fine

现在我有两个问题:

  1. 为什么语句3无效,而语句1无效?
  2. 陈述1和2之间是否存在技术上的差异,例如计算速度等?

阅读 230

收藏
2021-01-20

共1个答案

小编典典

文档

允许使用可能使用不同的引用约定的多个相邻字符串文字(由空格分隔),其含义与它们的串联相同。因此,“ hello”“世界”等同于“
helloworld”。


语句3不起作用,因为:

在运行时必须使用’+’运算符来连接字符串表达式。

请注意,文档中子标题的标题也是“字符串文字串联”。这仅适用于字符串文字,不适用于其他对象。


可能没有什么区别。如果有的话,它可能很小,任何人都不必担心。


另外,请了解这样做可能存在危险:

>>> def foo(bar, baz=None):
...     return bar
... 
>>> foo("bob"
... "bill")
'bobbill'

这是一个 绝不应该错误传递错误 的完美示例 如果我想"bill"成为论点baz怎么办?我忘记了逗号,但是没有出现错误。相反,已发生串联。

2021-01-20