我想获取一个列表进行排序,并使用python随机库对其进行排序。这样做的策略:
我是python的新手。因此对所有技术都不熟悉。请帮助解释。我不知道出了什么问题。
from random import randint
n=int(input())
l=[int(input()) for x in range(0,n)]
p=1
while (1):
if(p==1):
ransort(n)
else:
break
for x in l:
print (x)
def ransort(n):
i=randint(0,n-1)
j=randint(0,n-1)
l[i],l[j]=l[j],l[i]
if l== l.sort():
p=0
else:
p=1
return p
答案 0 :(得分:0)
有2个问题:
要避免无限循环,您可以做两件事:
检查返回值
while (p==1):
p = ransort(n)
或在ransort函数中编辑全局变量值:
def ransort(n):
i=randint(0,n-1)
j=randint(0,n-1)
l[i],l[j]=l[j],l[i]
global p
if l== l.sort():
p=0
else:
p=1
这有效:
def ransort(n):
i=randint(0,n-1)
j=randint(0,n-1)
l[i],l[j]=l[j],l[i]
global p
if l== l.sort():
p=0
else:
p=1
return p #here it is
while p == 1:
p = ransort(n)