我是Python的新手,我知道你使用“+”来连接如下的字符串:
'foo' + 'bar'
今天我遇到了一些代码似乎使用空格(缩进)连接字符串[更新:错误示例,请参阅下面的编辑2 ]:
SQL = "select col1, col2 "
"from table"
我没有发现我正在阅读的书中或网上的任何地方都提到过这个功能。有人可以向我解释一下:
编辑:感谢您的所有回复。在自己尝试代码后,它确实无效。在我离开工作之前查看代码时,我可能错过了一些细节;所以明天我会检查一下。但是,以下工作确实有效(这使我假设SQL示例在没有先验证的情况下工作):
x = "foo" "bar" # "foobar"
编辑2:事实证明我在上面的SQL示例中错过了一对括号。实际代码如下所示:
SQL = ("select col1, col2 "
"from table")
答案 0 :(得分:2)
字符串连接在python中自动运行,因此在第一个示例中不需要+
。你可以这样做:
>>> "foo" "bar"
'foobar'
但是如果你想要foo和bar之间的空格,则需要将其添加到一个字符串的末尾或下一个字符串的开头。
>>> "foo " "bar"
'foo bar'
Parenthised表达式可以扩展到多行。一旦你打开一个paren,python知道忽略换行符,直到你关闭它。所以这也有效
>>> ("foo"
... "bar")
'foobar'
>>> ("foo "
... "bar")
'foo bar'
函数调用中的表达式也可以有换行符
>>> def baz(sql=''):
... print(sql)
...
>>> baz(sql="foo "
... "bar")
foo bar
答案 1 :(得分:2)
字符串文字可以包含在匹配的单引号
'
或中 双引号"
。它们也可以包含在匹配的组中 三个单引号或双引号(通常称为 三重引用的字符串)。反斜杠\
字符用于转义 否则具有特殊含义的字符,例如换行符, 反斜杠本身,或引用字符。
SQL = "select col1, col2 "
"from table"
以上代码无效;你需要一个反斜杠字符:
SQL = "select col1, col2 "\
"from table"
字符串文字可以跨越多行。一种方法是使用三引号字符串:
s = """select col1, col2
from table"""
但是它们不同,三引号字符串可能会为您提供额外的空格,制表符和换行符。