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

时间:2012-04-01 01:25:44

标签: python string error-handling floating-point

我的目标是创建一个将度数转换为弧度的程序。公式是(度* 3.14)/ 180.但是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()
编辑:谢谢大家的帮助!

2 个答案:

答案 0 :(得分: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 :(得分:2)

float()不会修改其参数,而是将其作为float返回。我怀疑你想要的是什么(还习惯于添加标准的__name__约定):

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

if __name__ == '__main__':
    main()