这两个字符串之间应该有一个逗号
foo = ['dumb'
'error']
但是如果你忘记了逗号,它只是将字符串合并在一起而不是产生语法错误。你的结果将是
['dumberror']
我花了几个小时追踪这个。为什么Python解释器合并这些字符串?
答案 0 :(得分:6)
这是一个文档化的功能,允许在源代码中使用字符串文字进行更好的格式化。
允许使用多个相邻的字符串或字节文字(由空格分隔),可能使用不同的引用约定,并且它们的含义与它们的串联相同。因此,“你好”'世界'相当于“helloworld”。此功能可用于减少所需的反斜杠数量,方便地跨长行分割长字符串,甚至可以为字符串的某些部分添加注释。
还值得记住这句话:
请注意,此功能是在语法级别定义的,但在编译时实现。必须使用'+'运算符在运行时连接字符串表达式。另请注意,文字串联可以为每个组件使用不同的引用样式(甚至混合原始字符串和三重引用的字符串)。
答案 1 :(得分:1)
这不是一个错误,它是一个功能! Python被记录为串联字符串,但它们之间只有空格。
http://docs.python.org/release/2.5.2/ref/string-catenation.html