避免在条件满足后使用IF语句
我在一个循环里有一个除法操作,这个循环会重复很多次。奇怪的是,在循环的前几次(大约前10次),除数的值是零。等到除数有值后,就不会再出现除以零的错误了。
我有一个if
条件来检查除数的值,以避免除以零的情况,但我在想,这个if
条件在后面的循环中每次都要检查,会不会影响性能,特别是我知道后面其实不需要再检查了。
那我应该怎么写代码呢?用Python的话?
3 个回答
1
我和Thilo有同样的看法:我觉得这应该是挺便宜的。
如果你真的在意这个问题,可以测一下代码的运行时间,看看这个小小的开销是否让你无法接受。我觉得应该没问题。
9
别担心,if (a != 0)
这个判断其实很简单,不会消耗太多资源。
如果你真的想要其他方法,可以把这个循环分成两个部分,等到除数有值的时候就退出第一个循环。不过这样做可能会让代码变得复杂,读起来也不太方便。
6
我建议你把你的调用放在try/except块里。这个在Python中开销很小,如果没有出现错误,使用它的成本和一个简单的pass语句差不多。Python的设计理念是,你应该直接进行调用,然后处理可能出现的错误,而不是总是先询问是否可以。
示例代码:
def print_divide(x,y):
try:
print x/y
except ZeroDivisionError:
pass