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

输入5,-5,-7时Python求最小值代码输出-5而非-7是为什么

代码问题根源

你代码里的x列表存储的是input分割后得到的字符串类型元素,实际执行的是字符串的字典序比较规则,而非数值大小比较:
字符串'-5'和'-7'对比时,首字符都是'-',会继续对比第二个字符,字符'5'的ASCII码小于'7',所以程序会判定'-5' < '-7'为真,最终得到错误结果。

修复步骤
  • 分割输入内容后,将每个元素转换为整数类型(如果需要支持小数可转换为float类型)
  • 不要使用min作为变量名,会覆盖Python内置的min()求最小值函数,引发后续潜在问题

修复后的代码如下:

# 分割后逐个转int
x = list(map(int, input('Please enter a list of different numbers separated by \',\':').split(',')))
min_val = x[0]
for i in range(0, len(x)):
    if x[i] < min_val:
        min_val = x[i]
print('The minimun number is ', min_val)

修复后输入5,-5,-7即可得到预期输出-7。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 12:54:05