-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 を挿入する最良の方法を見つけようとしています。私は、try and except を If/else に置き換えるか、try and except に if/else を追加するだけでよいと考えていました。キーエラーのためにこのコードに if/else を挿入する方法についての助けをいただければ幸いです。したがって、基本的には、同じキーエラーの試行ブロックと例外ブロックに 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

妥当なオプションの 1 つは、初期化して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 に答える