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

Python代码变量声明Syntax error求助:Sublime Text3运行报错

排查并解决你的Python代码语法错误

我帮你找出了代码里的两处语法错误,这就是你在Sublime Text3中运行时触发Syntax error的原因:

1. 函数调用缺少闭合括号

在计算ac的代码行中,math.acos()函数的调用没有添加对应的右括号,直接导致语法结构不完整:

# 错误写法
ac = math.acos(a**2 + b**2 - c**2/(2*a*b)*180/pi

另外这里还隐藏了运算顺序逻辑问题:余弦定理的正确公式是cos(C) = (a² + b² - c²)/(2ab),你需要把分子部分用括号包裹,同时弧度转角度的*180/pi应该放在acos()函数外面(因为acos返回的是弧度值)。修正后这行代码应该是:

ac = math.acos((a**2 + b**2 - c**2)/(2*a*b)) * 180/pi

2. range()函数调用缺少括号

Python中函数调用必须使用括号,你写的for n in range 3:不符合语法规范,需要改成:

# 错误写法
for n in range 3:

# 正确写法
for n in range(3):

修正后的完整代码(含额外逻辑修复)

import turtle
import math
pi = math.pi

def triangle(a,b,c):
    # law of cosines, where ac = angle c
    ac = math.acos((a**2 + b**2 - c**2)/(2*a*b)) * 180/pi
    # law of sines(补充:sin函数需要弧度参数,所以先把ac转成弧度)
    ab = math.asin(math.sin(ac*pi/180)/c*b) * 180/pi
    # Angle sum theorem
    aa = 180 - (ab + ac)
    lengths = [a,b,c]
    angles = [ac,aa,ab]
    for n in range(3):
        turtle.forward(lengths[n])
        turtle.left(180-angles[n])

triangle(3,4,5)

补充说明:计算ab的时候,math.sin()默认接收弧度参数,而ac已经是角度值,所以需要先转成弧度(ac*pi/180),否则计算出来的角度会完全错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:38:11