2012-04-01 4 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() 

EDITを:助けありがとうございました!

答えて

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

私はちょうど元を変更し、文字列は、このようにそれらのすべての操作は、新しいオブジェクトを作成し、Pythonで不変であることを決して追加しないだろう。 – Zenon

+0

ありがとう!!ええ、私は知っていますが、私の先生は自分自身でそれを機能させたいと思っています。 – netbyte

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

+1

@netbyteこれをチェックしてくださいhttp://stackoverflow.com/questions/8228257/what-does-if-name-main-mean-in-python :) –

関連する問題