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

Python三角形判断代码第2行能否更简洁/更Pythonic?

优化三角形判断的条件语句

你可以通过排序后仅判断最大边的方式,让第二行的判断逻辑更简洁、更符合Python风格。

原代码中重复写了三次类似的判断,其实只需要把三边排序,检查最大的边是否大于等于另外两边之和即可——因为只要最大的边满足这个条件,就肯定构不成三角形;反之如果最大的边都小于另外两边之和,那其他边必然也满足三角形的三边关系。

优化后的完整代码如下:

def triangle(side1, side2, side3):
    sides = sorted([side1, side2, side3])
    if sides[-1] >= sides[0] + sides[1]:
        return 'Not a triangle'
    elif side1 == side2 == side3:
        return 'Equilateral'
    elif len(set(sides)) == 3:
        return 'Scalene'
    return 'Isosceles'

另外补充个小细节:原代码里的elif side1 != side2 != side3判断逻辑有漏洞——比如当三边是1、2、1时,这个条件会返回True,但实际这是等腰三角形。用len(set(sides)) == 3可以准确判断三边是否都不相等,更可靠。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 13:07:01