2016-03-28 105 views
-1

需要Python v2.7的一些帮助。我试图取1角和1方(相反),并使用sin函数来查找斜边的长度。python度数和弧度

下面是我尝试工作的一小段代码。在这个例子中,我知道sin45应该返回0.707度,但是我知道Python以弧度返回值(0.85)。

我认为这将是一个简单的问题,然后将输出转换为度,以便我可以在计算中使用(Hypotenuse = length/sin 45) - 但这不起作用。在下面的例子中,如果我输入5的长度和45的角度,我应该得到〜7的答案。但我不知道。

如何让Python返回值?

from math import *  

side = 5/sin(45)    #sin is output in radians 
output = degrees(side)   #convert to degrees 
print side      #returns 5.87 
print output     #336.67 

test1 = sin(45)     #radian output, returns 0.851 
test2 = degrees(test1)   #convert to degrees, returns 48.7 
+3

*我知道sin45应该返回0.707度*错误,不,没有那么多的“罪(45度)”评估为无量纲数“0.707 ...”。我没有检查过你的代码,但是这个根本性的误解可能不会帮助你。 –

+0

它几乎看起来像你用arcsin混淆罪恶。 sin函数以弧度为角度作为参数,并返回sin,这是一个纯粹的无单位比率。这是你在高中时学到的,非常非常基本的东西。把45这个数字传给罪并不是你想要的。你想'math.pi/4.0',这是45度,但以弧度。也许现在是时候把你的旧版书籍掸掉,并且更新自己的罪恶和余弦究竟是什么? –

回答

1

Python没有返回弧度,但需要他们作为输入:

from math import * 
side = 5/sin(radians(45))    #sin has input in radians 

print side        #returns 7.07 


test1 = sin(radians(45))     #returns 0.707 
+0

@TomKarzes我知道,但这是他想要的。 我只修正了输入类型,剩下的就是他的业务,如果这是问题,将编辑出其余部分。 – JeD

+0

他似乎想要做简单的触发计算。 他得到了错误的结果,因为他使用'degrees'而不是'radians',可能会惊慌失措,试图在不考虑的情况下转换不同的值。 我向他展示了转换的正确值。是的,你是对的其余的代码可能会令人困惑,我编辑了它,但这*是*他正在寻找的错误 – JeD

+0

@TomKarzes哇放松。你为什么这么着急?我坦率地承认我创造了一个懒惰的答案,对于一个懒惰的问题,我甚至承认你是对的,你为什么如此激进? – JeD

1

好吧,明确你想要做什么,你要计算使用1)长度的斜边长度相反侧(opp)和给定角度(theta)。使用公式:

hyp = opp/sin(theta), 

其中Theta输入是度数,但必须转换为弧度,因为这就是数学模块的工作原理。因此,

from math import sin, radians 

hyp = 5/sin(radians(45))) # this returns 5*sqrt(2) ~ 7.07 
# if instead you did 5/sin(45), you will get ~5.88 which is wrong. 

对于sin函数时,需要输入的角度(在蟒,该角度必须以弧度表示),并获得范围从-1到1作为输出的实数这既不是一个角以度或弧度表示,只是一个实数。