-1
SomeDict = {'Sarah':20, 'Mark': 'hello', 'Jackie': 'bye'}
try: 
    result = ""
    theKey = raw_input("Enter some key: ")
    val = someDict[theKey]
    except keyErrorr:
        result "hello"
    else:
        result = result + "" + "done"
    print result 

我了解您可以插入的 try 块和代码来尝试查看出现了什么错误,然后错误可以被 except 块捕获。我试图找出在 try 和 except 块中插入 if / else 的最佳方法,以解决此代码中存在的相同关键错误。我在想我可以用 if/else 替换 try 和 except,或者是否可以在 try 和 except 中添加 if/else。任何有关如何在此代码中插入 if/else 以解决关键错误的帮助将不胜感激。所以基本上我想在 try 和 except 块中添加一个 if/else 代码来处理相同的关键错误。

 SomeDict = {'Sarah':20, 'Mark': 'hello', 'Jackie': 'bye'}
    try: 
        result = "" #could i insert something like if result == "" : #for this line?
        theKey = raw_input("Enter some key: ")
        val = someDict[theKey]
        except keyErrorr:
            result "hello"
        else:
            result = result + "" + "done"
        print result 
4

3 回答 3

2

一种合理的选择是先初始化result = None,然后进行测试if result is None:

使用 None 比使用空字符串更好,因为有一天您可能希望字典值是空字符串,而且 None 对于您的代码的普通读者来说可能更清楚。

您也可以跳过 try-except 并使用if theKey in someDict:.

于 2012-05-04T16:05:44.270 回答
1

您可以添加另一个除非没有规范它应该处理什么异常。

try:
   # do something
except KeyError:
   # do something because of the Keyerror
except:
   # do what you need to do if the exception is not a KeyError
于 2012-05-04T16:09:03.473 回答
0
someDict = {'Sarah':20, 'Mark': 'hello', 'Jackie': 'bye'}   # corrected dict name
result = ""
theKey = raw_input("Enter some key: ")
try:                    # just try the code where the error could be
    val = someDict[theKey]
except KeyError:        # corrected exception name and indent level
    result = "hello"    # corrected syntax
else:                   # corrected indent level
    result = result + "" + "done"       # why add "" ?
print result 

这对你有用吗?

于 2012-05-04T16:22:49.757 回答