该代码来自K. Pollari-Malmi关于“编程简介”课程的讲义:
def main():
print "Ohjelma laskee asuntolainan kuukausierat."
rivi = raw_input("Anna lainasumma: ")
lainasumma = float(rivi)
rivi = raw_input("Anna laina-aika vuosina: ")
laina_aika = int(rivi)
if laina_aika < 1:
print "liian lyhyt laina-aika"
else:
kk_lkm = 12 * laina_aika
rivi = raw_input("Anna korkoprosentti: ")
korko = float(rivi)
lyhennys = lainasumma / kk_lkm
paaoma = lainasumma
i = 0
print " lyhennys korko yhteensa"
while i < kk_lkm:
i = i + 1
korkoera = korko / 1200.0 * paaoma
paaoma = paaoma - lyhennys
kuukausiera = korkoera + lyhennys
print "%2d. %8.2f %8.2f %8.2f" % \ # mistake probably here
(i, lyhennys, korkoera, kuukausiera)
main()
我收到语法错误
SyntaxError: unexpected character after line continuation character
如何解决错误消息?
答案 0 :(得分:10)
几个答案已经为您提供了问题的症结所在,但是我想在可行的情况下使用我最喜欢的方式插入Python中的逻辑行继续:
print "%2d. %8.2f %8.2f %8.2f" % ( # no mistake here
i, lyhennys, korkoera, kuukausiera)
即,而不是像一些答案建议使用额外的括号,你可以利用你自然碰巧拥有的任何括号 - 这将告诉Python你也需要逻辑线延续; - )
答案 1 :(得分:6)
在换行符之后,你不能有任何,甚至是空格。
删除空格,或将整行包装在一对括号中。 Python implicitly joins lines between parentheses, curly braces, and square brackets:
print ( "%2d. %8.2f %8.2f %8.2f" %
(i, lyhennys, korkoera, kuukausiera) )
答案 2 :(得分:2)
尝试修改这些行:
print "%2d. %8.2f %8.2f %8.2f" % \ # mistake probably here
(i, lyhennys, korkoera, kuukausiera)
到这一行:
print "%2d. %8.2f %8.2f %8.2f" % (i, lyhennys, korkoera, kuukausiera)
另请注意,以反斜杠结尾的行不能发表评论。因此,#mistake probably here
评论可能会导致问题。
答案 3 :(得分:2)
尝试重写此内容:
print "%2d. %8.2f %8.2f %8.2f" % \ # mistake probably here
(i, lyhennys, korkoera, kuukausiera)
对此:
print ("%2d. %8.2f %8.2f %8.2f" %
(i, lyhennys, korkoera, kuukausiera))
\
也应该有效,但IMO的可读性较差。
答案 4 :(得分:2)
替换:
print "%2d. %8.2f %8.2f %8.2f" % \
(i, lyhennys, korkoera, kuukausiera)
人:
print "%2d. %8.2f %8.2f %8.2f" % (
i, lyhennys, korkoera, kuukausiera)
一般注释:始终使用英语作为标识符
答案 5 :(得分:1)
一般来说,我发现我不在Python中使用行继续。你可以用圆括号等清洁它。
答案 6 :(得分:0)
“\”表示“此行继续到下一行”,并且后面不能包含任何字符。之后可能还有一个空格。
两个解决方案:
确保之后没有空格;
在一行上重写声明:
print "%2d. %8.2f %8.2f %8.2f" % (i, lyhennys, korkoera, kuukausiera)
您甚至可以使用括号使其适合多行:
print "%2d. %8.2f %8.2f %8.2f" % (
i, lyhennys, korkoera, kuukausiera)