print 'For ' + str(n) ' total pieces:\n' + str(a) + ' six pieces, ' + str(b) + ' nine pieces, ' + str(c) + ' twenty pieces'
解释器说存在语法错误,并在'
\n
答案 0 :(得分:4)
在+
之后直接丢失str(n)
。编译器突出显示导致解析错误的令牌的结尾。在这种情况下,编译器在函数调用str(n)
之后不会直接期望字符串文字。
答案 1 :(得分:2)
对于问题中的文本,使用格式化字符串是个好主意,它甚至可以帮助防止您遇到的错误(缺少+
):
'For %d total pieces:\n%d six pieces, %d nine pieces, %d twenty pieces' % (n,a,b,c)
在上面的代码片段中,我假设n,a,b,c
是数字。有关详细信息,请查看文档中的String Formatting Operations。
答案 2 :(得分:1)
你在' total pieces:\n'
之前错过了一个'+'。
实际上,作为格式化的字符串,这会更好。
print "For %(total)f total pieces:\n%(six)f six pieces, %(nine)f nine pieces, %(twenty)f twenty pieces" % {
"total": n,
"six": a,
"nine": b,
"twenty": c
}
答案 3 :(得分:0)
+
之前您遗漏了' total pieces:\n'
:
print 'For ' + str(n) + ' total pieces:\n' + str(a) + ' six pieces, ' + str(b) + ' nine pieces, ' + str(c) + ' twenty pieces'
答案 4 :(得分:0)
错过了+
:
print 'For ' + str(n) + ' total pieces:\n' + str(a) + ' six pieces, ' + str(b) + ' nine pieces, ' + str(c) + ' twenty pieces'
^