首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有人能帮我吗?我的python脚本出了什么问题?

有人能帮我吗?我的python脚本出了什么问题?
EN

Stack Overflow用户
提问于 2013-12-05 15:06:16
回答 2查看 87关注 0票数 0

我编写了一个python脚本,得到了一个“无效语法”错误。有人能帮我找出错误吗?谢谢。

我的代码之一:

代码语言:javascript
复制
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

我的错误输出是:

代码语言:javascript
复制
    finally:
          ^
SyntaxError: invalid syntax
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-05 15:09:26

你忘了一个]

代码语言:javascript
复制
m[ls[0]] = [ m[ls[1]], m[ls[2]] ]

而不是

代码语言:javascript
复制
m[ls[0]] = [ m[ls[1], m[ls[2]] ]
票数 4
EN

Stack Overflow用户

发布于 2013-12-05 15:09:48

在这里,您缺少了一个结束方括号:)

添加:

代码语言:javascript
复制
m[ls[0]] = [ m[ls[1]], m[ls[2]] ]

如果您使用的是+Python2.6,那么优化还可以使用with语句:

代码语言:javascript
复制
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]] ]

它将在成功执行代码块后自动关闭文件。

希望这能有所帮助!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20403442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档