运行我的函数时,我的if语句没有运行

时间:2017-08-29 22:40:15

标签: python arrays python-3.x if-statement bubble-sort

我正在尝试进行简单的冒泡排序,而我用来排序数组中的数字的if语句没有运行。任何人都可以帮助我让它运行吗?

这是我的代码:

def Bubble( a ):
    Flag = False
    while not Flag:
        Flag = True
        for i in range(0, len(a), -1):
            if a[i] > a[i+1]: #this if statement isn't running
                a[i], a[i + 1] = a[i + 1], a[i]
                print("hi")
                Flag = False



def main():
    a = GRN(10)
    acopy = a[:]
    Bubble(a)
    acopy.sort()
    print(a==acopy)
    print(a)
    print(acopy)


main()

1 个答案:

答案 0 :(得分:3)

range(0, len(a), -1)始终为空列表,因为该步骤为否定。责备不是if语句,而是for循环。你需要的是range(len(a)-1)