【问题标题】:Error using exception handling in python在 python 中使用异常处理时出错
【发布时间】:2018-06-13 02:40:35
【问题描述】:

刚开始学习python,在异常处理中使用try命令,出现语法错误

这是我的代码,

def divide(a,b):
    {
        print(a," hello world", b)
        try:
            return a/b
        except:
            print("It is meaningless")
    }
print(divide(1,2))

这是我的输出,

PS D:\python> python firstprog.py
  File "firstprog.py", line 4
    try:
      ^
SyntaxError: invalid syntax

你能帮帮我吗?

【问题讨论】:

  • 为什么会有大括号???
  • 这是糟糕的功能设计。并非所有控制路径都返回值。无论哪种方式,这只是一个错字。
  • 如果没有大括号,它将按预期工作
  • @user3483203 默认返回None
  • @ausk 就像我说的,糟糕的功能设计。显式 > 隐式。

标签: python exception try-except


【解决方案1】:

首先删除你的花括号,python中的花括号用于字典/集合的简写声明。

喜欢:

def divide(a,b):
    print(a," hello world", b)
    try:
        return a/b
    except:
        print("It is meaningless")

print(divide(1,2))

因为大括号和冒号 python 认为它是某种字典,并在尝试附近抛出错误。

【讨论】:

  • 请避免回答此类问题,这没有意义我做了同样的事情,我回答了问题但很快将其删除,因为我意识到回答此类问题没有意义
  • 注意分号是允许的
  • 您希望新来者会提出什么样的问题。并不是每个人都有如此丰富的经验来提出高层次的问题。根据您的经验,这个问题是多余的,在我的投票中最高,所以问题是无头的,因为分支预测是在 CS 第二年教授的。
  • 不好意思我忘了说如果有这种问题写在cmets,好吗?
  • 我详细说明了为什么花括号不起作用。如果他像def divide(a,b): {print('a'): print('b')} 这样写,代码就会成功运行
猜你喜欢
  • 1970-01-01
  • 2020-07-07
  • 2017-01-24
  • 1970-01-01
  • 2013-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多