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

Why does my program not output anything in the command window when I run it?

所以我定义了一个冒泡排序函数,但是当我尝试 运行 它时,我只得到一个空白控制台 window。我觉得它真的很愚蠢,比如语法错误,但我无法确定。这是代码:

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()

这是一个更有可能起作用的冒泡函数。

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. 你的函数不return任何东西,所以print(bubble(array))总是输出None
  2. 您的第二个 swap = True 语句位置不当,在 while 循环的每一步都执行,导致无限循环
  3. 你写了 arr[1] = arr[i+1] 而不是 arr[i] = arr[i+1],忘记了第二部分交换。在 python 中,您可以交换两个值而不需要 temp 变量,这就是我所做的。