>>>seq = ("a", "b", "c") # This is sequence of strings.
str.join( "-",seq )
SyntaxError: multiple statements found while compiling a single statement
这里出了什么问题?我试图通过 ' 更改 " 但它没有帮助...
>>> seq = ("a", "b", "c")
my_string = "-"
str.join(my_string, seq)
SyntaxError: multiple statements found while compiling a single statement
为什么????
请您参考如下方法:
您的 SPECIFIC 实例中的问题似乎是您将多行粘贴到交互式解释器中并试图让它们全部一次解析。 IDLE(等人)不太喜欢那样。像你的第一个例子一样分开做:
>>> seq = ("a","b","c")
>>> str.join("-", seq)
# "a-b-c"
当你执行 str = "-" 时,str.join(seq) 仍然有效,因为它等同于 my_string.join(seq) 如上所述,但使用“长版本”(str.join(separator, sequence)) 不起作用。
如果您想在 Python shell 中粘贴较长的行,习惯上用 ; 分隔,但请不要在 Python 文件中粘贴此类行。我经常这样做是为了通过电子邮件为人们提供可重现的结果:
seq = ("a", "b", "c"); my_string = '-'; my_string.join(seq)
一个较早的问题是覆盖 str 构造函数。启动一个新的 shell 并试试这个:
seq = ("a", "b", "c")
my_string = '-'
str.join(my_string, seq)
你应该得到这个:
'a-b-c'
使用join作为实例方法更为常见:
my_string.join(seq)
