Python中的数学错误 - 尝试进行简单的三角函数计算
我在做一些数学题,需要制作一个包含x的正弦值的表格。
我想这在Python中做会更快,而且还能顺便学到两件事……但是我现在遇到了一个数学错误。
这是我的代码:
import math
ang = math.asin(30)
print ang
这是我遇到的错误:
Traceback (most recent call last):
File "/home/tri/Desktop/maths.py", line 3, in <module>
ang = math.asin(30)
ValueError: math domain error
>>>
我看了一些其他的帖子,但实在搞不懂他们的意思。
2 个回答
4
Python中的 math.asin(x) 函数会返回x的反正弦值,但这里的 x
是用弧度来计算的。你现在用的是度数。
从 维基百科的文章 可以看到,输入的值应该在-1到1之间。
这篇 维基百科的文章 解释了弧度和度数之间的转换。
5
反正弦函数在[-1, 1]这个范围之外是没有定义的。换句话说,30这个数字不在这个函数可以接受的范围内。这正是你看到的错误提示想告诉你的。
如果你想要的是正弦函数,它的名字是 math.sin()
,这个函数需要的输入是弧度。如果你想把角度转换成弧度,可以使用 math.radians()
。