为何math.sin()计算结果异常,角度转换不符合预期?
问题解决:math.sin()计算结果与计算器不一致的原因及修复
核心问题
Python的math.sin()函数要求传入的参数是弧度值,而非角度值。你直接传入45(角度),函数会将其视为弧度计算,这就导致结果和默认按角度计算的计算器不符。
原代码分析
import math r = math.sin(45) # 错误:将角度45当作弧度传入 q = math.degrees(r) # 错误:把正弦值当作弧度转角度,逻辑颠倒 print(r) print(q)
这段代码的两处错误:
- 未将角度转换为弧度就传入
math.sin() - 使用
math.degrees()处理正弦值,正确的反向操作应该是先求反正弦再转角度
修复后的代码
import math # 先将角度45转换为弧度,再计算正弦值 r = math.sin(math.radians(45)) print(r) # 输出约0.7071067811865476,与计算器结果一致 # 若要从正弦值反推角度,需用反正弦函数 q = math.degrees(math.asin(r)) print(q) # 输出45.0
关键说明
math.radians(degrees):将角度值转换为弧度值,是使用三角函数前的必要步骤(除非你本来就用弧度计算)math.asin(value):计算正弦值对应的弧度角度,再用math.degrees()转换为角度单位
内容的提问来源于stack exchange,提问作者Michael Beyer
相关产品推荐
相关产品推荐

