2016-03-20 41 views
0

得到了一段我正試圖解決的代碼。我非常接近,但由於某種原因,else語句在錯誤的時間打印出來,我不確定它有什麼問題。try-except- else- finally

try: 
    my_dict = {'ex01': 65, 'ex02': 'hello', 'ex03': 86, 'ex04': 98} 
    key_str = input('Enter a key:') 
    result = my_dict[key_str] 
    result *= 2 
    print(result) 
except: 
    print("Key not found") 
else: 
    print("invalid") 
finally: 
    print() 

當我輸入ex01作爲輸入時,打印出130,並且當它不應該打印出無效時輸出無效。任何想法什麼是錯的?

+0

什麼是錯的,這是正確的。 – muratgu

+0

當沒有發現異常時'else'節被執行。因此 - 您的代碼按預期運行。 –

+0

它仍然是錯誤的,不打印出什麼預計 – deans7

回答

0

這是做的方式:

my_dict = {'ex01': 65, 'ex02': 'hello', 'ex03': 86, 'ex04': 98} 
key_str = input('Enter a key:') 

try: 
    result = my_dict[key_str] 
    result *= 2 
except KeyError: # the key does not exist 
    print('Key not found') 
except: # something else went wrong 
    print('invalid') 
else: # everything went fine 
    print(result) 
finally: 
    print('the end') # Will always be executed 
+0

似乎有錯誤 – deans7

+0

當我打印ex02它打印出hellohello,它應該是打印無效 – deans7