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

Python判断三角形类型时如何同时触发if和elif的对应输出逻辑

问题原因
  • if...elif...else属于互斥分支结构,只要任意一个前置条件判断为真,后续所有分支都会直接跳过不执行。等边三角形天然满足普通三角形的构成条件,所以只会触发第一个if分支,永远走不到后面的等边判断逻辑。
  • 等边三角形的判断逻辑层级错误:它是「可以构成三角形」前提下的特殊场景,不应该和普通三角形判定放在同级的分支下。
修正后的代码
r1 = int(input('输入第一条边长度:'))
r2 = int(input('输入第二条边长度:'))
r3 = int(input('输入第三条边长度:'))
# 先判断是否满足三角形构成条件
if (r1 + r2) > r3 and (r2 + r3) > r1 and (r1 + r3) > r2:
    print('可以构成三角形')
    # 满足三角形条件后,再嵌套判断是否为等边三角形
    if r1 == r2 == r3:
        print('该三角形为等边三角形')
else:
    print('无法构成三角形')

如果需要保留原英文提示,可使用以下版本:

r1 = int(input('Determine a length: '))
r2 = int(input('Determine another length: '))
r3 = int(input('Determine one more length: '))
if (r1 + r2) > r3 and (r2 + r3) > r1 and (r1 + r3) > r2:
    print('You can form a triangle.')
    if r1 == r2 == r3:
        print("You can form an equilateral triangle.")
else:
    print("You can't form a triangle.")
逻辑说明

先执行通用的三角形构成校验,校验不通过直接走else提示无法构成三角形;校验通过后先打印普通三角形提示,再追加等边三角形的判断,符合条件就额外打印对应提示,两个判断逻辑不会互相冲突。
另外修正了原有代码里的两处拼写错误:triangule改为正确拼写triangle,a equilateral改为an equilateral(元音音素开头的单词前不定冠词用an)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 16:54:05