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

为何我的Python代码出现SyntaxError: bad token T_OP令牌错误?

问题分析与修复方案

1. 令牌错误的直接原因

你代码第7行里的减号−是全角Unicode减号,并非Python支持的ASCII半角减号-。Python解析器无法识别该符号,因此抛出SyntaxError: bad token T_OP。只需将这个符号替换为普通半角减号即可解决该语法错误。

2. 影响预期输出的其他问题

即使修复符号,代码仍存在两处问题,导致无法得到预期的5.0:

  • 函数law_of_cosines缺少return语句,计算结果无法被返回,最终print(res1)会输出None
  • math.cos()要求传入弧度值,但你误用math.degrees(theta)将角度转换为角度值(逻辑完全颠倒),正确做法是用math.radians(theta)将角度转为弧度

修复后的完整代码

import math

def law_of_cosines(a,b,theta):
    # 替换正确减号、用math.radians转换角度为弧度、添加return返回结果
    return math.sqrt((a**2) + (b**2) - (2 * a * b * math.cos(math.radians(theta))))

res1 = law_of_cosines(3.0, 4.0, 90)
print(res1)  # 输出: 5.0

另外,原代码中的int()转换属于多余操作——a、b均为浮点数,平方和计算后为浮点数,保留浮点类型才能得到精确的5.0,因此直接去掉int()即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 11:03:24