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

Python三角形判断代码报错illegal target for variable annotation求解

解决三角形类型判断代码的语法错误及逻辑问题

原代码存在的问题

  • 语法错误:else块后直接使用elif是非法的,Python不允许这种结构。else作为if的分支,不能衔接elif,正确的多分支应为if -> elif -> elif -> else的链式结构。
  • 三角形构成条件错误:原判断a>(b+c) or b>(a+c) or c>(a+b)不准确,有效三角形要求任意两边之和严格大于第三边,因此无法构成的条件是任意一边大于等于另外两边之和。
  • 浮点数精度隐患:通过pow计算平方根再判断相等,会引入浮点数精度误差,导致本应成立的直角三角形判断失败。改用整数平方比较可完全避免这个问题。
  • 判断顺序不合理:原代码先判断直角三角形再判断等边三角形,虽不影响结果,但逻辑上应优先判断更特殊的等边三角形,再处理直角三角形。

修正后的代码

a = int(input())
b = int(input())
c = int(input())

if a >= b + c or b >= a + c or c >= a + b:
    print("Triangle cannot be formed")
elif a == b and b == c:
    print("Equilateral Triangle")
elif a**2 + b**2 == c**2 or a**2 + c**2 == b**2 or b**2 + c**2 == a**2:
    print("Right Triangle")
else:
    print("Normal Triangle")

代码逻辑说明

  1. 输入三条边并转换为整数类型。
  2. 首先判断是否无法构成三角形:若任意一边大于等于另外两边之和,输出对应提示。
  3. 接着判断等边三角形:三条边长度完全相等时输出对应类型。
  4. 然后判断直角三角形:验证任意两边的平方和是否等于第三边的平方(整数运算无精度问题)。
  5. 剩余情况均为普通三角形,输出对应提示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 10:55:26