任何人都可以帮我解决我的python脚本有什么问题吗?

时间:2013-12-05 15:06:17

标签: python syntax

我编写了一个python脚本并出现了“无效语法”错误。任何人都可以帮我找到错误吗?感谢。

我的代码:

class Mahjong():
    mentsu_map = {}
    def __init__(self):
        if len(Mahjong.mentsu_map) == 0:
            m = Mahjong.mentsu_map
            m[0] = [0, 0]
            tablefile = open("pretable.data", "r")
            try:
                for line in tablefile:
                    ls = map(int, line.split(' '))
                    m[ls[0]] = [ m[ls[1], m[ls[2]] ]
            finally: # invalid syntax here
                tablefile.close()

    def shanten(self, ht): 
        pass

我的错误输出是:

    finally:
          ^
SyntaxError: invalid syntax

2 个答案:

答案 0 :(得分:4)

您忘记了]

m[ls[0]] = [ m[ls[1]], m[ls[2]] ]

而不是

m[ls[0]] = [ m[ls[1], m[ls[2]] ]

答案 1 :(得分:1)

你在这里错过了一个方括号:)

添加了:

m[ls[0]] = [ m[ls[1]], m[ls[2]] ]

如果您使用+ Python 2.6,要进行优化,您还可以使用with语句:

with open("pretable.data", "r") as tablefile:
    for line in tablefile:
            ls = map(int, line.split(' '))
            m[ls[0]] = [ m[ls[1]], m[ls[2]] ]

成功执行代码块后会自动关闭文件。

希望这有帮助!