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

Python读取4个用户输入数字的代码为何未正常输出最大整数?

代码错误原因分析
  • Python列表的sort()方法默认执行升序排序,排序后列表元素从小到大排列,你代码里排序后的列表索引[0]是最小值,索引[3]才是最大值。
  • 你写的if-elif链式判断逻辑完全错误。链式判断只要前一个条件成立就会终止后续判断,且判断逻辑和取最大值的目标完全不匹配,同时你判断的是排序后的列表元素,输出的却是原始输入顺序的num1/num2/num3/num4变量,排序后列表元素的位置已经和原始输入变量没有对应关系,必然会输出错误结果。
  • 额外注意:不要用list作为变量名,会覆盖Python内置的list类型,属于不良编码习惯。
修复方案

不需要写复杂的if判断,直接用内置方法就能拿到最大值,两种正确写法如下:

写法1:用max()函数直接取最大值(推荐)

num1 = int(input("Types your numbers: "))
num2 = int(input("Types your numbers: "))
num3 = int(input("Types your numbers: "))
num4 = int(input("Types your numbers: "))
nums = [num1, num2, num3, num4]
print(max(nums))

写法2:排序后取列表最后一位元素

num1 = int(input("Types your numbers: "))
num2 = int(input("Types your numbers: "))
num3 = int(input("Types your numbers: "))
num4 = int(input("Types your numbers: "))
nums = [num1, num2, num3, num4]
nums.sort()
# 升序排序后最后一位是最大值,索引-1代表取列表最后一个元素
print(nums[-1])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 04:54:00