Python '的目的是什么;其他';试后阻塞,除了?

Python '的目的是什么;其他';试后阻塞,除了?,python,python-3.x,Python,Python 3.x,在学习python时,我已经阅读了关于我的问题,但我不明白为什么这样的实现是由python完成的 案例1:引发异常&sd设置为45 try: raise ValueError() sd = 45 except(OSError): sd = 50 else: sd = 23 案例2:异常由处理,但除外&sd设置为50 try: raise ValueError() sd = 45 except(ValueError): sd = 50

在学习python时,我已经阅读了关于我的问题,但我不明白为什么这样的实现是由python完成的

案例1:引发异常&
sd
设置为45

try:
    raise ValueError()
    sd = 45
except(OSError): 
    sd = 50
else:
    sd = 23
案例2:异常由
处理,但
除外&sd设置为50

try:
    raise ValueError()
    sd = 45
except(ValueError): 
    sd = 50
else: 
    sd = 23
案例3:未发生错误,然后将执行else&
sd
设置为23

try:
    sd = 45
except(ValueError): 
    sd = 50
else: 
    sd = 23
我们总是希望我们的代码必须工作&如果抛出错误,它应该被处理。但是为什么
else
在这里扮演角色呢?如果try块中的代码没有错误,那么运行这个

如果我误解、遗漏或指示错误,请提出建议。

我建议退房-关于这一点有一整节:

try…except语句有一个可选的else子句,当该子句出现时,必须在所有except子句之后。如果try子句没有引发异常,那么它对于必须执行的代码非常有用


@Edit要详细说明这一点,
else
的要点是,当您做了一些您认为可能出错的事情(例如,打开一个可能不存在的文件)时,您可以将使用该文件的代码放在
else
语句中,而不是放在
try
中,允许您避免捕获不是由您的
try
语句引发的异常(即,如果在使用文件时出现与打开文件完全无关的异常会怎么样?

try
几乎与if语句类似,因此使用
else
是正常的,您将
之外的
置于errors@timmy如果在try块的前一个代码中引发异常,如何停止定义
sd
。根据语言的其他引用,请尝试块句柄异常(如果发生异常)&必须停止进一步的代码执行。您可以使用
最终:sd=50
,您通常希望为每个错误分配一个值或
传递
谢谢您清除了我遗漏的内容!若在try块的前一段代码中引发异常,如何停止定义sd。根据语言的其他引用,请尝试块句柄异常(如果发生异常)&必须停止进一步的代码执行很高兴这有帮助-如果可以,请“✔ 接受这个答案”。为了回答您接下来的问题,我建议您稍微换一种方式思考这个问题:与其尝试“停止定义sd”,不如尝试取消它(检查
del
关键字)。如果您询问如何退出该程序,您需要的是
sys.exit()