情况: 期望外循环运行一次,然后内循环完全运行,然后外循环运行其第二... 问题:为什么外循环在内循环之前运行两次才有机会运行?
代码:
def sort(a_list):
for i in range(1,len(a_list)):
print("i=",i)
for j in range(i-1,0,-1):
print("j=",j)
测试: L = [9,6,1,3]
排序(L)
结果:
i= 1
i= 2 # here, the outer lopp ran twice then inter loop began.
j= 1
i= 3
j= 2
j= 1
答案 0 :(得分:3)
这是因为当i = 1
内部循环变为空range(0,0,-1)
时。因此,您不打印任何内容并转到i = 2
。
答案 1 :(得分:0)
因为在第一次迭代的内部循环中,它将是
For j in range(1-1,0,-1):
等同于
For j in range(0,0,-1):
该范围是一个空范围,所以在i = 1时,内部循环将不会运行,因为条件评估为假