【问题标题】:Error in try/except construction [duplicate]尝试/除构造中的错误[重复]
【发布时间】:2016-11-02 13:53:28
【问题描述】:

我只是盯着一段简单的代码坐了 10 分钟,这是我从指南中复制的,我不明白为什么会出错。

def transformation(x):
    date_format = "%d/%m/%Y"
    try:
        a = dt.date(int(x[6:10]), int(x[3:5]), int(x[0:2]))
    else:
        a = dt.datetime.strptime(x, date_format)
    finally: 
        return a
  File "<ipython-input-91-f1f6fe70d542>", line 5
    else:
       ^
SyntaxError: invalid syntax

也许这只是我……怎么了? 添加except

def transformation(x):
    date_format = "%d/%m/%Y"
    try:
        a = dt.date(int(x[6:10]), int(x[3:5]), int(x[0:2]))
    except pass 
    else:
        a = dt.datetime.strptime(x, date_format)
    finally: 
        return a
File "<ipython-input-93-c2285c857574>", line 5
    except pass 
              ^
SyntaxError: invalid syntax

【问题讨论】:

    标签: python


    【解决方案1】:

    您需要一个except 子句才能使用else

    try ... except 语句有一个可选的else 子句,当 存在,必须遵循所有 except 子句 [强调我的]

    【讨论】:

    • 请看编辑
    • except 后面需要一个冒号。
    【解决方案2】:

    我刚从python文档页面看到它,所以我只是引用它对你说的话:

    try ... except 语句有一个可选的 else 子句,当它出现时,它必须跟在所有 except 子句之后。如果 try 子句不引发异常,则它对于必须执行的代码很有用。例如:

     for arg in sys.argv[1:]:
            try:
                f = open(arg, 'r')
            except IOError:
                print('cannot open', arg)
            else:
                print(arg, 'has', len(f.readlines()), 'lines')
                f.close()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-17
      • 1970-01-01
      • 2021-11-29
      • 1970-01-01
      相关资源
      最近更新 更多