我有一个关于在python中计算速度更快的问题。 这是一个很大的模拟,所以节省时间的任何小事都有帮助。
据我所知,当python评估一个带有“或”的“if”语句时,如果第一个条件为真,则不会对第二个条件感到烦恼。
这里我要检查0到1之间随机生成的浮点数是否小于某个指数因子。
if random() < exp(a-b):
do_things()
在这种情况下,当第二个条件意味着第一个条件时,使用逻辑冗余的“if”语句是否值得,但第一个可能更快计算?
if a > b or random() < exp(a-b):
do_things()
这会更快到甚至不重要吗?任何意见都表示赞赏,谢谢!
答案 0 :(得分:1)
这意味着对于(a和b和c),如果a为假,b或c将不再被测试。
类似地,如果你有OR表达式(a或b)并且a为真,则永远不会评估b。
总而言之,这些条款在分离时不会更快失败。
不要担心性能,担心可读性......谢谢