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

Python实现一位数构造指定规则三位数的代码错误排查

错误原因说明
  • 核心运行错误来自list.sort()方法的特性:Python 里的sort()是原地排序方法,仅修改调用它的原列表的元素顺序,没有返回值(实际返回None)。你将lists.sort()的返回值赋值给变量y后,y的值为None,后续执行y[2]这类索引取值操作时,就会触发类型错误,提示'NoneType' object is not subscriptable。
  • 额外优化点:你的代码里int(a)、int(c)等转换是冗余的,d1到d3已经提前转成了整数类型,排序后元素还是整数,无需二次转换。

修正后的参考代码

方案1:直接使用原地排序后的原列表

d1 = int(input())
d2 = int(input())
d3 = int(input())
lists = [d1, d2, d3]
# sort是原地排序,直接修改lists本身
lists.sort()
max_num = lists[2]
min_num = lists[0]
rest_num = lists[1]
num = max_num * 100 + min_num * 10 + rest_num
print(num)

方案2:使用sorted()函数获取新的排序后列表

sorted()会返回新的排序完成的列表,不会修改原列表,更符合你原来的写法逻辑:

d1 = int(input())
d2 = int(input())
d3 = int(input())
lists = [d1, d2, d3]
y = sorted(lists)
max_num = y[2]
min_num = y[0]
rest_num = y[1]
num = max_num * 100 + min_num * 10 + rest_num
print(num)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 09:45:06