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

Python求三个数最大值if语句首条件成立仍返回错误结果问题

错误原因

  1. 输入类型错误:input()函数返回的默认是字符串类型,你直接对字符串做大小比较,实际比较的是字符的Unicode编码顺序,不是数值的大小,这是导致判断错误的核心原因。
    举个对应你异常场景的例子:如果输入的三个值分别是12、3、4,程序拿到的是字符串"12"、"3"、"4",字符串比较时会逐个字符比对:"12"和"3"比第一个字符,"1"的编码小于"3",所以"12" > "3"的结果是False,你以为成立的首个if判断实际根本没触发,之后elif判断"3" > "12"为真,但"3" > "4"为假,最终走到else分支返回第三个值,和你遇到的异常完全吻合。
  2. 冗余参数:你定义函数时声明了x,y,z三个参数,但函数内部又用input的返回值覆盖了这三个参数,传入的参数完全没有作用,属于无用代码。
  3. 格式小错误:第一个return的拼接字符串缺了空格,输出时会出现12is the biggest number这种连在一起的错误格式。

修复代码

def max_num():
    # 需要支持小数就把int换成float
    x = int(input("num_1: "))
    y = int(input("num_2: "))
    z = int(input("num_3: "))
    
    if x > y and x > z:
        return f"{x} is the biggest number"
    elif y > x and y > z:
        return f"{y} is the biggest number"
    else:
        return f"{z} is the biggest number"
        
print(max_num())

内容的提问来源于stack exchange,提问作者Shawal Anwar Chowdhury

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 06:06:04