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

Python 3中if-elif语句异常:第三个变量为最大值时未被识别

问题分析与解决

你的代码条件判断逻辑存在错误,导致第三个变量为最大值时无法被正确识别。

错误根源

原代码里的if n1 > n2 and n3这类写法逻辑不对:and n3并不是判断n1大于n3,而是检查n3是否为非零整数(只要n3不等于0,这个子条件就会判定为真)。同理,elif n2 > n1 and n3、elif n3 > n1 and n2都是同样的错误,这就导致当n3是最大值时,要么前面的条件误判成立,要么n3自身的判断条件根本不满足。

修正后的代码

n1 = int(input("1st Number:\n"))
n2 = int(input("2nd Number:\n"))
n3 = int(input("3rd Number:\n"))

if n1 > n2 and n1 > n3:
    print(f'\033[1;31m{n1}\033[m')
elif n2 > n1 and n2 > n3:
    print(f'\033[4;32m{n2}\033[m')
elif n3 > n1 and n3 > n2:
    print(f'\033[33m{n3}\033[m')

额外补充(处理数值相等场景)

如果需要支持多个数值同为最大值的情况(比如两个数都是最大),可以把判断符号改成>=,或者用else兜底处理,示例如下:

n1 = int(input("1st Number:\n"))
n2 = int(input("2nd Number:\n"))
n3 = int(input("3rd Number:\n"))

if n1 >= n2 and n1 >= n3:
    print(f'\033[1;31m{n1}\033[m')
elif n2 >= n1 and n2 >= n3:
    print(f'\033[4;32m{n2}\033[m')
else:
    print(f'\033[33m{n3}\033[m')

内容的提问来源于stack exchange,提问作者Matemática Programada

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 03:45:48