python自身排序函数中的无限循环

2024-04-19 08:17:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我对python非常陌生,作为练习,我想用我对python的一点知识来编写排序函数。但我的代码以无限循环结束,但我不知道为什么。有人能帮忙吗?你知道吗

这是我的密码

#create list
sezn = []
while True:
    try :
        a = int(input("Number: "))
        sezn.append(a)
    except :
        break
#print min, max and mean
print (sezn)
print("minimum: ", min(sezn))
print ("maximum: ", max(sezn))
fin = 0
for i in sezn:
    fin += i
mean = fin/len(sezn)
print ("mean: ", mean)
#sorting function    
sort = []
sez = []
index = 0
length = len(sezn)
print (length)
while index < length:
    for i in sezn:
        if i == min(sezn):
            sort.append(i)
        else:
            sez.append(i)
    index += 1
    sezn = sez
print(sort)

Tags: inforindexlenminmeansortlength
2条回答

循环是无限的,因为你无法摆脱它。你知道吗

如果你只是想让它退出循环。然后:

sezn = []
while True:
    try :
        a = int(input("Number: "))
        sezn.append(a)
        break
    except :
    break

您忘记了在while循环期间将sez设置为空列表:

while index < length:
    sez = [] # <  need to add this line, and you can also get rid of this from before the while loop
    for i in sezn:
        if i == min(sezn):
            sort.append(i)
        else:
            sez.append(i)
    index += 1
    sezn = sez

相关问题 更多 >