比较中超出了最大递归深度。我得到了这个错误,但我不知道为什么我在python中得到这个错误

比较中超出了最大递归深度。我得到了这个错误,但我不知道为什么我在python中得到这个错误,python,Python,该函数定义如下 def bubble_sortl: 计数=0 如果计数==lenl-1: 普林特 回来 其他: 计数+=1 对于范围为0的j,lenl-1: 如果l[j]>l[j+1]: l[j],l[j+1]=l[j+1],l[j] 泡泡糖 运行下面的示例时,会发生错误 l=[5,3,8,6,7,2] 泡泡糖 这里的问题是您使用的是递归,但是您的停止条件将永远不会激活,因为您每次调用函数时都会重置计数。事实上,一个函数可以调用它自己一定的次数,但是在这里它永远不会停止,你的程序满足这个限制,因

该函数定义如下

def bubble_sortl: 计数=0 如果计数==lenl-1: 普林特 回来 其他: 计数+=1 对于范围为0的j,lenl-1: 如果l[j]>l[j+1]: l[j],l[j+1]=l[j+1],l[j] 泡泡糖 运行下面的示例时,会发生错误

l=[5,3,8,6,7,2] 泡泡糖
这里的问题是您使用的是递归,但是您的停止条件将永远不会激活,因为您每次调用函数时都会重置计数。事实上,一个函数可以调用它自己一定的次数,但是在这里它永远不会停止,你的程序满足这个限制,因此出现了错误。所以你可以做的就是把count变量作为一个参数传递给你的函数,就像这样

def bubble_sort(l,count =0):
    if count == len(l)-1:
        print(l)
        return
    else:
        count += 1
        for j in range(0, len(l) - 1):
            if l[j] > l[j + 1]:
                l[j], l[j + 1] = l[j + 1], l[j]
        bubble_sort(l,count)
    

l = [5, 3, 8, 6, 7, 2]
bubble_sort(l)
它输出这个

[2, 3, 5, 6, 7, 8]

你的函数是递归的。我不确定我是否能看到它可以终止。请在你的查询后清楚地说明你在哪里遇到错误,以及你想要的预期行为。或者简单地把你的问题弄清楚一点,以满足堆栈溢出的要求。l的长度保持不变,并且count在它自己的局部作用域thoughUse引用中重置每个递归调用。正如评论中提到的,问题在于不终止。