import datetime
start2 = datetime.datetime.now()
count2 = 0
for i in range(100):
for j in range(1000000):
count2 += 1
end2 = datetime.datetime.now()
print(end2 - start2)
0:00:14.588081
start1 = datetime.datetime.now()
count1 = 0
for i in range(1000000):
for j in range(100):
count1 += 1
end1 = datetime.datetime.now()
print(end1 - start1)
原因一
对于第一种,判断 i <100,循环100次; 判断 j < 1000000,循环100*1000000次,判断次数一共为:100 + 100 * 1000000 = 1000000100 次
对于第二种,判断 i < 1000000, 循环1000000次,判断 j < 100,循环1000000*100次,判断次数一共为:1000000 + 1000000 * 100 = 101000000次
原因二
第一个循环的 i 的初始化次数是 100 次,j 的初始化次数是1000000 * 100次,一共100 + 100 * 1000000 = 1000000100 次。
第二个循环的 i 的初始化次数是 1000000 次,j 的初始化次数是 100 次,一共1000000 + 1000000 * 100 = 101000000次。