求问:禁用max/min/and/or的三数最大值Python代码无输出问题排查
三个整数最大值Python代码问题分析与修复
你的代码出现无输出的情况,核心问题是完全没处理数值相等的场景——比如当a=b、b=c、a=c或者三个数全相等时,所有if/elif的条件都无法触发,自然不会执行任何print语句。另外你的判断逻辑存在大量冗余,比如elif a>c分支里又判断a>b,这在前面if a>b不成立的前提下,这个条件永远为假,完全是多余的。
符合要求的修复代码(不使用min/max/and/or)
用分步比较的方式,逻辑清晰且覆盖所有场景:
a = int(input()) b = int(input()) c = int(input()) # 先找出a和b中的较大值 if a > b: temp = a else: temp = b # 再将这个较大值和c比较,得到最终最大值 if temp > c: print(temp) else: print(c)
另一种嵌套判断的实现方式
如果偏好嵌套结构,也可以这样写,同样覆盖所有情况:
a = int(input()) b = int(input()) c = int(input()) if a > b: if a > c: print(a) else: print(c) else: if b > c: print(b) else: print(c)
逻辑说明
这两种写法都能处理所有边界情况:
- 当任意两个数相等时,会自动进入对应分支(比如a==b时,会进入else分支比较b和c)
- 三个数全相等时,最终会输出这个相等的数值
- 完全避免了冗余判断,逻辑简洁直观
内容的提问来源于stack exchange,提问作者4917
相关产品推荐
相关产品推荐

