Python If else在try/except块中编码帮助

Python If else在try/except块中编码帮助,python,python-2.7,Python,Python 2.7,我理解您可以插入的try块,并编写代码尝试查看出现了什么错误,然后except块可以捕获错误。我正在尝试找出在try和except块中插入if/else的最佳方法,以处理此代码中存在的同一个键错误。我想我可以用If/else替换try和except,或者可以在try和except中添加If/else。对于如何将if/else插入此代码中的关键错误,我们将不胜感激。因此,基本上我想为同一个键错误在try和except块中添加if/else代码 SomeDict = {'Sarah':20, 'Ma

我理解您可以插入的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 = ""
    theKey = raw_input("Enter some key: ")
    val = someDict[theKey]
    except keyErrorr:
        result "hello"
    else:
        result = result + "" + "done"
    print result 

一个合理的选择是初始化
result=None
,然后测试
,如果结果为None:

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


您也可以跳过try-except,如果在someDict:

中键入,则使用
,您可以添加另一个except,而无需说明它应该处理什么异常

 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 

这对您有用吗?

您的代码有语法错误。
except
else
行需要与
try
行处于相同的缩进级别。异常名称是
keyrerror
,末尾是K和一个r,另外,
result=“hello”
我不知道您要做什么,但是我认为你需要复习基础知识。限制
try
块只包括你访问字典的那一行
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
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