在python中浮动字符串时遇到问题

问题描述:

我的目标是创建一个将度数转换为弧度的程序。其计算公式为(度* 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() 

编辑:谢谢大家的帮助!

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

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://*.com/questions/8228257/what-does-if-name-main-mean-in-python :) – 2012-04-01 01:44:53