在满足条件后避免使用IF语句

gre*_*eye 5 python performance if-statement

我在循环内部进行了一次分割操作,重复多次.碰巧在前几次通过循环(或多或少的前10个循环)中,除数为零.一旦获得值,就不再可能出现div by zero错误.

我有一个if条件来测试除数值,以避免div为零,但我想知道有一个性能影响,评估这if将对后续循环中的每次运行有所影响,特别是因为我知道它已经没用了.

该如何编码?在Python?

Thi*_*ilo 9

别担心.一个if (a != 0)便宜.

替代方案(如果你真的想要一个)可以将循环拆分为两个,并在除数得到其值后退出第一个循环.但这听起来会使代码变得不必要地复杂(难以阅读).


Kyl*_*yle 6

我会把你的调用包装在try/except块中.它们在python中非常便宜,并且如果没有抛出异常,则成本与pass语句一样多.Python的设计使您可以进行调用并解析任何错误,而不是总是询问权限.

示例代码:

def print_divide(x,y):
    try:
        print x/y
    except ZeroDivisionError:
        pass
Run Code Online (Sandbox Code Playgroud)

  • 我认为应该为意外情况保留例外情况.当你知道在前几次迭代中除数将为0时,会睁大眼睛看到ZeroDivisionError,这看起来很奇怪.另外,是一个尝试/除了一个简单的如果真的便宜吗? (3认同)