【问题标题】:try- except- else- finally尝试-除了-否则-最后
【发布时间】:2026-02-06 19:00:02
【问题描述】:

有一段我正在尝试解决的代码。我真的很接近,但由于某种原因,else 语句在错误的时间打印出来,我不确定它有什么问题。

 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,而当它不应该打印出无效时则无效。有什么想法有什么问题吗?

【问题讨论】:

  • 没有错,是正确的。
  • else 部分在未捕获到异常时执行。因此 - 您的代码按预期运行。
  • 它仍然是错误的,没有打印出预期的内容

标签: python-3.x exception


【解决方案1】:

这样做的方法是:

 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

【讨论】:

  • 当我打印 ex02 时它打印出 hellohello,它应该打印无效
  • 我相信您的“except”关键字缩进与您的“try”语句一致。