测试代码:
limit = 10000000
from datetime import datetime
start = datetime.now()
for i in range(limit):
if i < limit:
pass
elif i > limit:
print('OK')
print(datetime.now() - start)
start = datetime.now()
for j in range(limit):
if j < limit:
pass
if j > limit:
print('OK')
print(datetime.now() - start)
根据结果约为:
0:00:01.578095
0:00:02.553120
然后调换if和elif的顺序时,结果仍接近以上结果,当if第一步判断成立的时候,elif就会不再判断,而当两个if连用的时候,两个if都会进行判断,因而效率低于elif。这令我想起了|与||,&和&&,当两个条件进行判断的时候,前面的条件不满足时,||和&&将不再进行后面的运算,从而提高了代码的效率。