Python-气泡排序错误索引超出范围

Python-气泡排序错误索引超出范围,python,sorting,Python,Sorting,我正在尝试创建简单的冒泡排序代码。我得到的错误是索引超出范围。只是想弄清楚我做错了什么 我尝试使用不同的括号并更改I变量 用户\数组=列表 last=lenuser\u数组 def swapa,b: 温度=a a=b b=温度 返回a,b 对于0,10范围内的i: word=输入“在数组中输入一个数字:” 用户_array.appendword 打印用户_数组[4] last=lenuser\u数组 交换=真 交换时==True: 交换=错误 i=0 而我最后: 如果用户_数组[i]>用户_数组

我正在尝试创建简单的冒泡排序代码。我得到的错误是索引超出范围。只是想弄清楚我做错了什么

我尝试使用不同的括号并更改I变量

用户\数组=列表 last=lenuser\u数组 def swapa,b: 温度=a a=b b=温度 返回a,b 对于0,10范围内的i: word=输入“在数组中输入一个数字:” 用户_array.appendword 打印用户_数组[4] last=lenuser\u数组 交换=真 交换时==True: 交换=错误 i=0 而我最后: 如果用户_数组[i]>用户_数组[i+1]: 交换用户\u数组[i],用户\u数组[i+1] 交换=真 i=i+1 打印用户数组 代码应该按升序对输入的数字列表进行排序

好的,开始了

def bubble_sort( a ) :
    for i in range(len(a)-1) :
        for j in range(i+1, len(a)) :
            if a[i] > a[j] :
                a[i], a[j] = a[j], a[i]  # swap. simple, isn't it?
    return a

print bubble_sort( [6,3,6,23,7,5,8,4e6] )

[3, 5, 6, 6, 7, 8, 23, 4000000.0]
主要外卖:

创建一个单独的函数,不要简单地将所有代码塞进文件中 简单点 使其易于阅读和理解 对于一个循环和另一个循环,冒泡排序通常为2,这就是。 不要忘记返回值=
是的,不要使用while循环,它们往往会永远运行,很难调试或解释它们的完成情况。

您正在调用swap user\u array[i],user\u array[i+1],但会丢弃结果。这毫无意义。按照您的定义,交换不会改变其输入。提示:i的最后一个值是什么?i的最大值是什么?然后看看上面写着user_array[i+1]的部分。谢谢John。很抱歉我是Python新手。我收到的错误与前一行有关谢谢。很抱歉我是Python/编码新手。上次打印时,我可以看到它包含一个值0。。。。所以我猜错误在last=lenuser\u arrayThanks so muck@lenik。。。现在工作。。。非常感谢。