【问题标题】:Trying to figure out the except statement in Python试图找出 Python 中的 except 语句
【发布时间】:2012-12-04 23:10:25
【问题描述】:

我在理解在 Python 中使用“except”语句的方法时遇到了一些麻烦。我现在是一个可怕的编码员,所以我提前道歉。

这是我要运行的小代码:

def mathWorks():
    print " Answer the following: 5 + x = 10"

    x = int(raw_input("Please type your answer: "))

    if x == 5:
        print "You are correct!"
    else:
        print "You are incorrect!"
        break
    except ValueError:
        print "That is not an integer!"

mathWorks()

我认为我想要完成的事情是不言自明的。不幸的是,这段代码中的“except”语句出现“无效语法”。

我在这里做错了什么?

【问题讨论】:

  • except: 之前需要一个try:
  • 这与您的代码中显示的完全一样吗?我问是因为函数的主体根本没有缩进,所以现在你的问题与 except 无关,一切都与缺少四个空格来指示范围有关。
  • 在 SO 上发布问题时,请完整给出错误。它使提供帮助变得更容易。

标签: python except


【解决方案1】:

except 必须在 try 块之后。这表明应该处理异常的代码部分:

try:
    x = int(raw_input("Please type your answer: "))
except ValueError:
    print "That is not an integer!"

把它读作“试试这个,如果失败了就做这个”。请注意,在try 块中尽可能少做是一个好习惯 - 这可以确保您不会捕获您不想要的错误(正如您已经在做的指定要捕获的异常类型一样)。

在这种情况下,您可能还想在 except 块中调用 sys.exit(1),否则程序将继续(并因另一个错误而失败)。

【讨论】:

  • 啊,我没有意识到尝试:以前总是需要的。你的解释虽然有帮助。谢谢!
  • @user1901780 -- 一旦您的问题得到解决,请随时 accept 这个答案(或任何其他答案)。不过我会选这个。这是一个非常好的(正如我们对 Lattyware 所期望的那样):)
【解决方案2】:

它是这样使用的:

try: # try code here
except: # except errors here

【讨论】:

    【解决方案3】:

    对于您的代码,有一个“else”语句,您应该在所有 except 语句之后使用“else”语句。

    这与您的问题没有直接关系,但您可能会遇到这个问题。

    更多详情请参考原文档: https://docs.python.org/2/tutorial/errors.html

    【讨论】:

      猜你喜欢
      • 2022-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多