无法解决Python错误信息

1 投票
7 回答
3089 浏览
提问于 2025-04-15 12:29

这段代码来自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

你怎么解决这个错误信息呢?

7 个回答

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 这个注释可能就是导致问题的原因。

6

在行继续符号后面,你不能有任何东西,连空格都不行。

你要么删掉空格,要么把整行用一对括号括起来。 在Python中,括号、花括号和方括号之间的行会自动连接

print ( "%2d. %8.2f %8.2f %8.2f" % 
        (i, lyhennys, korkoera, kuukausiera) )
10

之前有好几个回答已经指出了你问题的关键,但我想推荐一种我最喜欢的在Python中实现逻辑行继续的方法,前提是可行:

print "%2d. %8.2f %8.2f %8.2f" % (         # no mistake here
            i, lyhennys, korkoera, kuukausiera)

也就是说,和一些回答建议你使用额外的括号不同,你可以利用你已经有的任何括号——这会告诉Python你也需要逻辑行继续哦;-)

撰写回答