You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python自定义排序函数输出None 无法返回预期有序列表原因排查

排序函数返回None问题修复

你的代码存在3处错误导致无法得到预期排序结果:

  • 元素交换逻辑错误:交换相邻元素时,你在给number[x]赋新值后,错误地将临时变量temp重新赋值为number[x+1],没有把临时变量存储的原number[x]值赋值给number[x+1],交换操作未生效。
  • 返回语句位置错误:return被写在内层判断分支中,第一次触发元素比较交换就会直接终止函数执行,排序逻辑根本没有跑完。
  • 返回值缺失:return后没有携带任何返回值,Python中无返回值的函数默认返回None,这就是你打印结果为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]
                number[x+1] = temp
    # 排序全部完成后返回结果列表
    return number

number = [1,4,2,6,9,3,7,8,11,10]
sortednum = sort(number)
print(sortednum)

运行上述代码将输出正确排序结果:[1, 2, 3, 4, 6, 7, 8, 9, 10, 11]


内容的提问来源于stack exchange,提问作者lakefromchromecart

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 19:09:31