为什么Python范围函数for循环运行两次

时间:2018-05-29 19:02:18

标签: python loops range

情况: 期望外循环运行一次,然后内循环完全运行,然后外循环运行其第二... 问题:为什么外循环在内循环之前运行两次才有机会运行?

代码:

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

2 个答案:

答案 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时,内部循环将不会运行,因为条件评估为假