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

发布于 2021-01-29 15:04:07

我在玩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之间是否存在技术上的差异,例如计算速度等?
关注者
0
被浏览
59
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    文档

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


    语句3不起作用,因为:

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

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


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


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

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

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



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看