为什么我的函数没有输出我想要的列表



我希望我的函数输出一个有序元素的列表,但是它输出的都是"none">

def sort(number):
for i in range(len(number)-1, 0, -1):
for x in range(i):
if number[x]>number[x+1]:
temp = number[x]
number[x] = number[x+1]
temp = number[x+1]
return
number = [1,4,2,6,9,3,7,8,11,10]
sortednum = sort(number)
print(sortednum)

输出:没有

在最外层的for循环之后没有返回语句,因此Python隐式返回None。即使在if语句中,您也返回None(因为您已经编写了return并且没有指定要返回的值),因此您的函数除了None之外没有任何其他返回值的可能性。

编辑:你也在排序列表,所以返回一些东西是没有意义的。要么创建一个带有排序值的新列表并返回它,要么如果您想要就地排序,那么返回None将是正确的事情。不要把两者混在一起。

python已经有了一个排序函数

你可以这样实现它:

number = [1, 4, 2, 6, 9, 3, 7, 8, 11, 10]
sortednum = number.copy() # Copy the list
sortednum.sort() # Sort the new list
print(sortednum)

我希望这对你有帮助!

相关内容

最新更新