我希望我的函数输出一个有序元素的列表,但是它输出的都是"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)
我希望这对你有帮助!