为什么我的程序在运行时不会在命令窗口中输出任何内容?

时间:2016-03-14 15:26:22

标签: python bubble-sort

所以我为泡泡排序定义了一个函数,但是当我尝试运行它时,我只得到一个空白的控制台窗口。我觉得它像语法错误一样非常愚蠢,但我不能把它固定下来。这是代码:

def bubble(arr):
swap = True 
while (swap == True):
    swap = False
    for i in range(len(arr)-1):
        temp = arr[i]
        if arr[i]> arr[i+1]:
            temp = arr[i+1]
            arr[1] = arr[i+1]
    swap = True

array = ["AB","AAB","AAA"]
print (bubble(array))
input()

1 个答案:

答案 0 :(得分:1)

这是一个更有可能起作用的气泡功能。

def bubble(arr):
    swap = True
    while (swap == True):
        swap = False
        for i in range(len(arr)-1):
            if arr[i]> arr[i+1]:
                arr[i], arr[i+1] = arr[i+1], arr[i]
                swap = True
    return arr 

原始气泡功能存在各种问题。

  1. 您的函数不会返回任何内容,因此print(bubble(array))将始终输出None
  2. 您的第二个swap = True语句不合适,并且在您的while循环的每一步执行,导致无限循环
  3. 你写了arr[1] = arr[i+1]而不是arr[i] = arr[i+1],忘记了交换的第二部分。在python中,您可以交换两个值而无需temp变量,这就是我所做的。