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

时间:2010-03-26 06:54:05

标签: python performance if-statement

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

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

如何编码?在Python?

3 个答案:

答案 0 :(得分:9)

别担心。 if (a != 0)很便宜。

另一种选择(如果你真的想要一个)可以将循环分成两个,并在除数得到它的值后退出第一个循环。但这听起来会使代码变得不必要地复杂(难以阅读)。

答案 1 :(得分:6)

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

示例代码:

def print_divide(x,y):
    try:
        print x/y
    except ZeroDivisionError:
        pass

答案 2 :(得分:1)

我和Thilo在一起:我觉得应该很便宜。

如果您真的在意,您应该对代码进行计时并找出轻微的开销是否是不可接受的。我怀疑不是。