2012-04-01 78 views
1

我的目標是創建一個將度數轉換爲弧度的程序。其計算公式爲(度* 3.14)/ 180但是Python不斷給我這個錯誤:在python中浮動字符串時遇到問題

Traceback (most recent call last): 
    File "2.py", line 6, in <module> 
    main() 
    File "2.py", line 4, in main 
    degrees = (degrees * 3.14)/180 
TypeError: can't multiply sequence by non-int of type 'float' 

從這個代碼:

def main(): 
    degrees = raw_input("Enter your degrees: ") 
    float(degrees) 
    degrees = (degrees * 3.14)/180 

main() 

編輯:謝謝大家的幫助!

回答

8
float(degrees) 

什麼也沒做。或者,它可以從字符串輸入角度生成一個浮點數,但不會放在任何位置,所以度數保持字符串。這就是TypeError所說的:你要求它將數字乘以3.14。

degrees = float(degrees) 

會做到這一點。

順便說一下,已經有功能的數學模塊中的角度和弧度之間轉換:

>>> from math import degrees, radians, pi 
>>> radians(45) 
0.7853981633974483 
>>> degrees(radians(45)) 
45.0 
>>> degrees(pi/2) 
90.0 
+1

我只想補充一點,字符串是不可變的蟒蛇因而對他們的所有操作創建一個新的對象,從來沒有修改原始。 – Zenon 2012-04-01 01:29:56

+0

謝謝!是的,我知道,但是我的老師希望我爲自己做一個功能。 – netbyte 2012-04-01 01:33:50

2

float()不會修改它的參數,它返回它作爲一個float。我懷疑你想要的(也加入標準__name__約定出於習慣)什麼:

def main(): 
    degrees = raw_input("Enter your degrees: ") 
    degrees = float(degrees) 
    degrees = (degrees * 3.14)/180 

if __name__ == '__main__': 
    main() 
+0

if __name__ =='__main__':main()是做什麼的? – netbyte 2012-04-01 01:34:40

+1

@netbyte檢查了這一點http://stackoverflow.com/questions/8228257/what-does-if-name-main-mean-in-python :) – 2012-04-01 01:44:53

相關問題