在程序流程控制中,个人一直的习惯是判断某变量值是否为真……否则……
今天无意间有一个想法,想测试一个判断为真和判断为假哪个用时更短?结果有些出乎我的意料……
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
a = True t1 = time.time() for i in range(10000000): # A:判断是否为假 if not a: s = 100000 * 10 else: sub2 = time.time() - t1 print sub2 t2 = time.time() for i in range(10000000): # B:判断是否为真 if a: s = 100000 * 10 else: sub1 = time.time() - t2 print sub1 print sub1 / sub2 # 反复运行了有10多次,平均每次的输出值大约为2 |
通过上面的小例子,可以说明在python项目的流程控制中,以否定的“逻辑非”来进行判断应该是首选的。
如果有异议,请一起学习交流。