如何使用Python将弧度转换为度?

如何使用Python将弧度转换为度?,python,math,Python,Math,在模块中,我只能找到带有cos/sin/tan/acos/asin/atan的math.cos(x)。这将以弧度为单位返回答案。我怎样才能得到以度为单位的答案 这是我的密码: import math x = math.cos(1) y = x * 180 / math.pi print(y) 30.9570417874 我的计算器,在deg上,给出: cos(1) 0.9998476... 您只需使用以下命令将弧度结果转换为度: 并适当地四舍五入到所需的小数位 比如说 >>&g

在模块中,我只能找到带有cos/sin/tan/acos/asin/atan的
math.cos(x)
。这将以弧度为单位返回答案。我怎样才能得到以度为单位的答案

这是我的密码:

import math

x = math.cos(1)
y = x * 180 / math.pi
print(y)
30.9570417874
我的计算器,在deg上,给出:

cos(1)
0.9998476...

您只需使用以下命令将弧度结果转换为度:

并适当地四舍五入到所需的小数位

比如说

>>> round(math.degrees(math.asin(0.5)),2)
30.0
>>> 

Python在
math
包中包含两个函数<代码>弧度将度转换为弧度,
将弧度转换为度

要匹配计算器的输出,您需要:

>>> math.cos(math.radians(1))
0.9998476951563913
请注意,所有trig函数都在三角形的角度和两侧的比率之间转换。cos、sin和tan以弧度为单位的角度作为输入并返回比率;acos、asin和atan将比率作为输入,并返回以弧度为单位的角度。只转换角度,而不转换比率。

-fix- 因为要从弧度更改为度,所以实际上 rad=deg*math.pi/180 而不是deg*180/math.pi

import math
x=1                # in deg
x = x*math.pi/180  # convert to rad
y = math.cos(x)    # calculate in rad

print y
在一行中,它可以是这样的

y=math.cos(1*math.pi/180)

我还喜欢定义自己的函数,这些函数以度而不是弧度获取和返回参数。我确信有一些大写字母最纯粹的人不喜欢我的名字,但我只是用大写字母作为自定义函数的首字母。定义和测试代码如下

#Definitions for trig functions using degrees.
def Cos(a):
    return cos(radians(a))
def Sin(a):
    return sin(radians(a))
def Tan(a):
    return tan(radians(a))
def ArcTan(a):
    return degrees(arctan(a))
def ArcSin(a):
    return degrees(arcsin(a))
def ArcCos(a):
    return degrees(arccos(a))

#Testing Code
print(Cos(90))
print(Sin(90))
print(Tan(45))
print(ArcTan(1))
print(ArcSin(1))
print(ArcCos(0))
请注意,我已将math(或numpy)导入到名称空间中

from math import *
还请注意,我的函数位于定义它们的命名空间中。比如说,

math.Cos(45)
不存在。

Python将弧度转换为度或将度转换为弧度: 什么是弧度?它解决了什么问题?:

>>> import math
>>> math.degrees(0)                       #0 radians == 0 degrees
0.0
>>> math.degrees(math.pi/2)               #pi/2 radians is 90 degrees
90.0
>>> math.degrees(math.pi)                 #pi radians is 180 degrees
180.0      
>>> math.degrees(math.pi+(math.pi/2))     #pi+pi/2 radians is 270 degrees
270.0 
>>> math.degrees(math.pi+math.pi)         #2*pi radians is 360 degrees
360.0      
>>> import math
>>> math.radians(0)           #0 degrees == 0 radians
0.0
>>> math.radians(90)          #90 degrees is pi/2 radians
1.5707963267948966
>>> math.radians(180)         #180 degrees is pi radians
3.141592653589793
>>> math.radians(270)         #270 degrees is pi+(pi/2) radians
4.71238898038469
>>> math.radians(360)         #360 degrees is 2*pi radians
6.283185307179586
>>> 0 * math.pi / 180.0              #0 degrees in radians
0.0
>>> 90 * math.pi / 180.0             #90 degrees in radians
1.5707963267948966
>>> 180 * math.pi / 180.0            #180 degrees in radians
3.141592653589793
>>> 270 * math.pi / 180.0            #270 degrees in radians
4.71238898038469
>>> 360 * math.pi / 180.0            #360 degrees in radians
6.283185307179586
弧度和度是两个独立的度量单位,可以帮助人们表达和传达方向上的精确变化。Wikipedia对如何定义一个弧度相对于度的信息图有很好的直觉:

使用库计算弧度的Python示例:

>>> import math
>>> math.degrees(0)                       #0 radians == 0 degrees
0.0
>>> math.degrees(math.pi/2)               #pi/2 radians is 90 degrees
90.0
>>> math.degrees(math.pi)                 #pi radians is 180 degrees
180.0      
>>> math.degrees(math.pi+(math.pi/2))     #pi+pi/2 radians is 270 degrees
270.0 
>>> math.degrees(math.pi+math.pi)         #2*pi radians is 360 degrees
360.0      
>>> import math
>>> math.radians(0)           #0 degrees == 0 radians
0.0
>>> math.radians(90)          #90 degrees is pi/2 radians
1.5707963267948966
>>> math.radians(180)         #180 degrees is pi radians
3.141592653589793
>>> math.radians(270)         #270 degrees is pi+(pi/2) radians
4.71238898038469
>>> math.radians(360)         #360 degrees is 2*pi radians
6.283185307179586
>>> 0 * math.pi / 180.0              #0 degrees in radians
0.0
>>> 90 * math.pi / 180.0             #90 degrees in radians
1.5707963267948966
>>> 180 * math.pi / 180.0            #180 degrees in radians
3.141592653589793
>>> 270 * math.pi / 180.0            #270 degrees in radians
4.71238898038469
>>> 360 * math.pi / 180.0            #360 degrees in radians
6.283185307179586
使用从度计算弧度的库的Python示例:

>>> import math
>>> math.degrees(0)                       #0 radians == 0 degrees
0.0
>>> math.degrees(math.pi/2)               #pi/2 radians is 90 degrees
90.0
>>> math.degrees(math.pi)                 #pi radians is 180 degrees
180.0      
>>> math.degrees(math.pi+(math.pi/2))     #pi+pi/2 radians is 270 degrees
270.0 
>>> math.degrees(math.pi+math.pi)         #2*pi radians is 360 degrees
360.0      
>>> import math
>>> math.radians(0)           #0 degrees == 0 radians
0.0
>>> math.radians(90)          #90 degrees is pi/2 radians
1.5707963267948966
>>> math.radians(180)         #180 degrees is pi radians
3.141592653589793
>>> math.radians(270)         #270 degrees is pi+(pi/2) radians
4.71238898038469
>>> math.radians(360)         #360 degrees is 2*pi radians
6.283185307179586
>>> 0 * math.pi / 180.0              #0 degrees in radians
0.0
>>> 90 * math.pi / 180.0             #90 degrees in radians
1.5707963267948966
>>> 180 * math.pi / 180.0            #180 degrees in radians
3.141592653589793
>>> 270 * math.pi / 180.0            #270 degrees in radians
4.71238898038469
>>> 360 * math.pi / 180.0            #360 degrees in radians
6.283185307179586
资料来源:

数学符号:

>>> import math
>>> math.degrees(0)                       #0 radians == 0 degrees
0.0
>>> math.degrees(math.pi/2)               #pi/2 radians is 90 degrees
90.0
>>> math.degrees(math.pi)                 #pi radians is 180 degrees
180.0      
>>> math.degrees(math.pi+(math.pi/2))     #pi+pi/2 radians is 270 degrees
270.0 
>>> math.degrees(math.pi+math.pi)         #2*pi radians is 360 degrees
360.0      
>>> import math
>>> math.radians(0)           #0 degrees == 0 radians
0.0
>>> math.radians(90)          #90 degrees is pi/2 radians
1.5707963267948966
>>> math.radians(180)         #180 degrees is pi radians
3.141592653589793
>>> math.radians(270)         #270 degrees is pi+(pi/2) radians
4.71238898038469
>>> math.radians(360)         #360 degrees is 2*pi radians
6.283185307179586
>>> 0 * math.pi / 180.0              #0 degrees in radians
0.0
>>> 90 * math.pi / 180.0             #90 degrees in radians
1.5707963267948966
>>> 180 * math.pi / 180.0            #180 degrees in radians
3.141592653589793
>>> 270 * math.pi / 180.0            #270 degrees in radians
4.71238898038469
>>> 360 * math.pi / 180.0            #360 degrees in radians
6.283185307179586

您可以在不使用库的情况下进行度/弧度转换: 如果您使用自己的度/弧度转换器,则必须编写自己的代码来处理边缘情况

这里的错误很容易犯,而且会像1999年火星轨道器的开发者一样受到伤害,他们投入1.25亿美元将其撞向火星,因为这里的非直观边缘案例

让我们撞击轨道器,并将我们自己的弧度旋转到一定的角度:

>>> import math
>>> math.degrees(0)                       #0 radians == 0 degrees
0.0
>>> math.degrees(math.pi/2)               #pi/2 radians is 90 degrees
90.0
>>> math.degrees(math.pi)                 #pi radians is 180 degrees
180.0      
>>> math.degrees(math.pi+(math.pi/2))     #pi+pi/2 radians is 270 degrees
270.0 
>>> math.degrees(math.pi+math.pi)         #2*pi radians is 360 degrees
360.0      
>>> import math
>>> math.radians(0)           #0 degrees == 0 radians
0.0
>>> math.radians(90)          #90 degrees is pi/2 radians
1.5707963267948966
>>> math.radians(180)         #180 degrees is pi radians
3.141592653589793
>>> math.radians(270)         #270 degrees is pi+(pi/2) radians
4.71238898038469
>>> math.radians(360)         #360 degrees is 2*pi radians
6.283185307179586
>>> 0 * math.pi / 180.0              #0 degrees in radians
0.0
>>> 90 * math.pi / 180.0             #90 degrees in radians
1.5707963267948966
>>> 180 * math.pi / 180.0            #180 degrees in radians
3.141592653589793
>>> 270 * math.pi / 180.0            #270 degrees in radians
4.71238898038469
>>> 360 * math.pi / 180.0            #360 degrees in radians
6.283185307179586
无效弧度作为输入返回垃圾输出

>>> 0 * 180.0 / math.pi                         #0 radians is 0 degrees
0.0
>>> (math.pi/2) * 180.0 / math.pi               #pi/2 radians is 90 degrees
90.0
>>> (math.pi) * 180.0 / math.pi                 #pi radians is 180 degrees
180.0
>>> (math.pi+(math.pi/2)) * 180.0 / math.pi     #pi+(pi/2) radians is 270 degrees
270.0
>>> (2 * math.pi) * 180.0 / math.pi             #2*pi radians is 360 degrees
360.0
度到弧度:

>>> import math
>>> math.degrees(0)                       #0 radians == 0 degrees
0.0
>>> math.degrees(math.pi/2)               #pi/2 radians is 90 degrees
90.0
>>> math.degrees(math.pi)                 #pi radians is 180 degrees
180.0      
>>> math.degrees(math.pi+(math.pi/2))     #pi+pi/2 radians is 270 degrees
270.0 
>>> math.degrees(math.pi+math.pi)         #2*pi radians is 360 degrees
360.0      
>>> import math
>>> math.radians(0)           #0 degrees == 0 radians
0.0
>>> math.radians(90)          #90 degrees is pi/2 radians
1.5707963267948966
>>> math.radians(180)         #180 degrees is pi radians
3.141592653589793
>>> math.radians(270)         #270 degrees is pi+(pi/2) radians
4.71238898038469
>>> math.radians(360)         #360 degrees is 2*pi radians
6.283185307179586
>>> 0 * math.pi / 180.0              #0 degrees in radians
0.0
>>> 90 * math.pi / 180.0             #90 degrees in radians
1.5707963267948966
>>> 180 * math.pi / 180.0            #180 degrees in radians
3.141592653589793
>>> 270 * math.pi / 180.0            #270 degrees in radians
4.71238898038469
>>> 360 * math.pi / 180.0            #360 degrees in radians
6.283185307179586
以度和弧度表示多次旋转

单旋转有效弧度值介于0和2*pi之间。单旋转度值介于0和360之间。但是,如果要表示多个旋转,有效的弧度和度值介于0和无穷大之间

>>> import math
>>> math.radians(360)                 #one complete rotation
6.283185307179586
>>> math.radians(360+360)             #two rotations
12.566370614359172
>>> math.degrees(12.566370614359172)  #math.degrees and math.radians preserve the
720.0                                 #number of rotations
折叠多个旋转:

>>> import math
>>> math.degrees(0)                       #0 radians == 0 degrees
0.0
>>> math.degrees(math.pi/2)               #pi/2 radians is 90 degrees
90.0
>>> math.degrees(math.pi)                 #pi radians is 180 degrees
180.0      
>>> math.degrees(math.pi+(math.pi/2))     #pi+pi/2 radians is 270 degrees
270.0 
>>> math.degrees(math.pi+math.pi)         #2*pi radians is 360 degrees
360.0      
>>> import math
>>> math.radians(0)           #0 degrees == 0 radians
0.0
>>> math.radians(90)          #90 degrees is pi/2 radians
1.5707963267948966
>>> math.radians(180)         #180 degrees is pi radians
3.141592653589793
>>> math.radians(270)         #270 degrees is pi+(pi/2) radians
4.71238898038469
>>> math.radians(360)         #360 degrees is 2*pi radians
6.283185307179586
>>> 0 * math.pi / 180.0              #0 degrees in radians
0.0
>>> 90 * math.pi / 180.0             #90 degrees in radians
1.5707963267948966
>>> 180 * math.pi / 180.0            #180 degrees in radians
3.141592653589793
>>> 270 * math.pi / 180.0            #270 degrees in radians
4.71238898038469
>>> 360 * math.pi / 180.0            #360 degrees in radians
6.283185307179586
通过对一个旋转的值进行修改,可以将多个度/弧度旋转折叠为一个旋转。对于360度的模化,对于弧度的模化,是2*pi

>>> import math
>>> math.radians(720+90)        #2 whole rotations plus 90 is 14.14 radians
14.137166941154069
>>> math.radians((720+90)%360)  #14.1 radians brings you to 
1.5707963267948966              #the end point as 1.57 radians.

>>> math.degrees((2*math.pi)+(math.pi/2))            #one rotation plus a quarter 
450.0                                                #rotation is 450 degrees.
>>> math.degrees(((2*math.pi)+(math.pi/2))%(2*math.pi)) #one rotation plus a quarter
90.0                                                    #rotation brings you to 90.
Protip


汗学院有一些很好的内容来巩固关于三角和角度数学的直觉:

弧度也可以通过numpy转换成度

print(np.rad2deg(1))
57.29577951308232
如果需要舍入(我在下面的小数点后用了6位数字),那么


我喜欢这种方法,使用
sind(x)
cosd(x)


你有向后的东西,
cos
以角度作为输入,而不是输出。@Mark Ransom这有什么意义?@lucase.62,Mark是正确的。cos函数以一个角度作为输入,在您的示例中为
1
。在您的计算器上,此角度以度为单位,在Python中,此角度必须以弧度为单位。在您的示例中,返回值
x
,是一个无量纲数字。在你的计算器上,你已经计算出了1度的cos。在Python示例中,您计算了1弧度的cos,相当于57.296度。
cos
将角度作为输入,并生成一个比率作为输出。尝试像在示例中那样将输出转换为度是毫无意义的。您需要将输入的
1
从度转换为弧度。如果您使用的是
acos
则相反,输入是一个比率,输出是弧度。要匹配问题中的示例,请使用
math.cos(math.radians(1))
为什么在将弧度传递给math.degrees之前将其传递给asin?导致有效弧度值出现
ValueError:math domain error
错误的原因。永远不要被整数除(在这种设置中),很少有情况下这是有用的,甚至有方法将其写得更明确。这是一个奇妙的响应。你的例子很清楚,但你的“奖金”解释真的很有帮助。我对这件事很好奇,谢谢。作为唯一一个没有良好数学技能的compsci人员,这非常有帮助!如果有人想知道,
numpy
也有这些功能,可以一次性转换整个数组。它还有更明确的名称
rad2deg
deg2rad