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

Python三整数取最大值函数返回None的原因排查

问题原因与解决方法

你的函数返回None的核心原因是第三个条件的逻辑错误,导致当c是三个数中的最大值时,没有任何分支触发return语句——Python函数在没有显式return的情况下,会默认返回None。

看你的测试用例max_tres_num(1,2,3),此时c=3,第三个条件c>=a and c<=b等价于3>=1 and 3<=2,显然不成立,三个if都没命中,函数自然返回None。

修正后的代码

把第三个条件改成判断c是否大于等于另外两个数,或者更简洁的直接返回c(因为走到这一步时,a和b已经被排除是最大值的可能):

def max_tres_num(a,b,c):
    if a>=b and a>=c:
        return a
    if b>=a and b>=c:
        return b
    # 走到这里说明a和b都不是最大值,直接返回c即可
    return c

print(max_tres_num(1, 2, 3))  # 输出3

也可以用elif简化逻辑:

def max_tres_num(a,b,c):
    if a>=b and a>=c:
        return a
    elif b>=c:
        return b
    else:
        return c

其他实现方式

  • 直接用Python内置的max()函数,一行搞定:
    def max_tres_num(a,b,c):
        return max(a,b,c)
    
  • 分步比较:先找前两个数的最大值,再和第三个数对比:
    def max_tres_num(a,b,c):
        temp_max = a if a>b else b
        return temp_max if temp_max>c else c
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 21:45:36