2016-03-28 168 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作爲輸出的實數這既不是一個角以度或弧度表示,只是一個實數。