当前位置: 首页 > 知识库问答 >
问题:

Python中If/Elif语句的“Finally”等价物

谢裕
2023-03-14

Python的if/else语句是否有最终等价物,类似于它的try/except/finally语句?这可以让我们简化这一点:

 if condition1:
      do stuff
      clean up
 elif condition2:
      do stuff
      clean up
 elif condition3:
      do stuff
      clean up
 ...
 ...

为此:

 if condition1:
      do stuff
 elif condition2:
      do stuff
 elif condition3:
      do stuff
 ...
 ...
 finally:
      clean up

其中最后只有在满足条件并运行其“do东西”后才会被调用?相反,如果不满足条件,最后代码将不会被运行。

我不想滔滔不绝地说亵渎,但我能描述它的最好方式是在每一块“做事情”的末尾都有一个<code>GOTO。

本质上,它与< code>else语句相反。虽然< code>else仅在不满足其他条件时运行,但它仅在满足另一个条件时运行。

共有3个答案

樊琦
2023-03-14

您的逻辑类似于:

cleanup = True
if condition1:
    do stuff
elif condition2:
    do stuff
elif condition3:
    do stuff
....
else:
    cleanup = False

if cleanup:
    do the cleanup

丑陋,但这是你要求的

曾嘉福
2023-03-14

你可以用try

try:
    if-elif-else stuff
finally:
    cleanup stuff

引发异常,但清理已完成

弓磊
2023-03-14

它可以完全不黑客地完成,如下所示:

def function(x,y,z):
    if condition1:
        blah
    elif condition2:
        blah2
    else:
        return False

    #finally!
    clean up stuff.

在某些方面,不太方便,因为您必须使用单独的函数。但是,最好的做法是不要使用太长的函数。将逻辑划分为易于阅读的小函数(通常最多1页长),可以使测试、记录和理解执行流变得更加容易。

需要注意的一点是,finally子句在发生异常时不会运行。要做到这一点,您还需要添加<code>try:

 类似资料:
  • 我有一个函数可以返回三个值中的一个:a、b或c。 我需要根据:A、B或C的返回值执行不同的语句。据我所知,最好的方法是: 如果不引入这个新变量,是否有其他方法来计算的返回值<也许是这样的吧?

  • 本文向大家介绍Python中的if、else、elif语句用法简明讲解,包括了Python中的if、else、elif语句用法简明讲解的使用技巧和注意事项,需要的朋友参考一下 下面我们学习if语句,输入下面的代码,确保能够正确运行。 运行结果 加分练习 通过上面的练习,我们自己猜测一下if语句的作用,用自己的话回答下面的问题。 1. 你认为if对它下面的代码做了什么? 判断为True就执行它下面的

  • 我似乎搞不清楚下面的语句与和有关的问题是什么。请记住,仍然在开发中,我只是还没有能够在语句中测试它,所以很可能是错误的。 我得到的错误是: 而语句是这样的。

  • 本文向大家介绍Python if, elif, else,包括了Python if, elif, else的使用技巧和注意事项,需要的朋友参考一下 示例 在Python中,您可以定义一系列条件if,第一个条件用于elif其余条件,直到最后一个(可选)else用于其他条件条件未捕获的任何条件。 产出 Number is bigger than 2 使用else if代替elif会触发语法错误,因此是

  • 问题内容: 我试图获得一个if语句从多个条件中触发,而不用不同的触发器多次重写该语句。例如: 您如何将这些内容浓缩成一个陈述? 我试过使用“或”,并且无论输入是否符合任何条件,它都会导致任何raw_input触发语句。 问题答案: 你想做的是 如果您有很多可能性,请选择另一个选项: 由于您使用的是2.7,因此您也可以这样编写(在2.7或3+版本中有效,但在2.6或以下版本中无效): 这使元素成为您

  • Python3 实例 以下实例通过使用 if...elif...else 语句判断数字是正数、负数或零: 实例(Python 3.0+)# Filename : test.py # author by : www.runoob.com # 用户输入数字 num = float(input("输入一个数字: ")) if num > 0: print("正数") elif num == 0: pri