无法在Python中将数组按升序排序

无法在Python中将数组按升序排序,python,arrays,sorting,Python,Arrays,Sorting,我知道我可以使用sort()函数,但我正在尝试不使用它来实现这一点 from random import randint # Create variables numberArray = [0]*20 # Populate array for i in range(0,20): numberArray[i] = randint(0,300) # Sort array into ascending order print("Sorting array into ascending or

我知道我可以使用sort()函数,但我正在尝试不使用它来实现这一点

from random import randint
# Create variables
numberArray = [0]*20

# Populate array
for i in range(0,20):
    numberArray[i] = randint(0,300)

# Sort array into ascending order
print("Sorting array into ascending order...")

sortedAscending = False
while sortedAscending == False:
    for i in range(0,20):
        sortedAscending = True
        if i != (len(numberArray)-1):
            if numberArray[i] > numberArray[i+1]:
                temp = numberArray[i]
                numberArray[i] = numberArray[i+1]
                numberArray[i+1] = temp
                sortedAscending = False
                for j in range(0,20):
                    print(numberArray[j])
                print("END OF ARRAY")
                print()

for i in range(0,20):
    print(numberArray[i])
它开始对数组进行排序,但在几个循环之后,它无法对任何数字进行排序。请帮忙。
注意:带有“数组结束”的循环用于调试。

试试这个,让我知道它是否工作:)(到目前为止,我已经测试了2-3次,它工作得很好)


我将
sortedAscending=True
移出了for循环

您已经实现了冒泡排序

在python中,值交换非常简单。假设您想交换numberArray[i]和numberArray[i+1]的值,那么 你可以简单地使用这个

numberArray[i], numberArray[i+1] = numberArray[i+1], numberArray[i]
这是你的密码。这段代码对您来说应该可以正常工作

from random import randint
# Create variables
numberArray = [0]*20

# Populate array
for i in range(0,20):
    numberArray[i] = randint(0,300)
# Sort array into ascending order
print("Sorting array into ascending order...")

sortedAscending = False
while sortedAscending == False:
    sortedAscending = True # this should be before the for loop
    for i in range(0,20):
        if i != (len(numberArray)-1):
            if numberArray[i] > numberArray[i+1]:
                 numberArray[i], numberArray[i+1] = numberArray[i+1], numberArray[i]
                 sortedAscending = False
for i in range(0,20):
    print(numberArray[i])

(1) 展示它是如何失败的,不要只是说它失败了。(2) StackOverflow的重点是实际问题(参见);练习是。。。不太理想。欢迎使用堆栈溢出!当问题陈述只是“它不起作用”时,很难提供解决方案。请你的问题更完整地描述一下你预期会发生什么,以及这与实际结果有什么不同。请参阅,以获取关于什么是好的解释的提示。(我认为这是一个冒泡排序?您可以编辑标题,说您正在尝试实现冒泡排序,以便希望帮助解决实际问题的人可以看到这一点并转到其他地方,而不是单击并感到恼火)。注意:这不是一个数组,而是一个列表。
from random import randint
# Create variables
numberArray = [0]*20

# Populate array
for i in range(0,20):
    numberArray[i] = randint(0,300)
# Sort array into ascending order
print("Sorting array into ascending order...")

sortedAscending = False
while sortedAscending == False:
    sortedAscending = True # this should be before the for loop
    for i in range(0,20):
        if i != (len(numberArray)-1):
            if numberArray[i] > numberArray[i+1]:
                 numberArray[i], numberArray[i+1] = numberArray[i+1], numberArray[i]
                 sortedAscending = False
for i in range(0,20):
    print(numberArray[i])