Python的trigonmetric函数返回意外值

use*_*694 4 python math trigonometry

import math
print "python calculator"
print "calc or eval"
while 0 == 0:
    check = raw_input() #(experimental evaluation or traditional calculator)
    if check == "eval":
        a = raw_input("operator\n") #operator
        if a == "+":
            b = input("arg1\n") #inarg1
            c = input("arg2\n") #inarg2
            z = b + c
            print z
        elif a == "-":
            b = input("arg1\n") #inarg1
            c = input("arg2") #inarg2
            z = b - c
            print z
        elif a == "/":
            b = input("arg1\n") #inarg1
            c = input("arg2\n") #inarg2
            z = b / c
            print z
        elif a == "*":
            b = input("arg1\n") #inarg1
            c = input("arg2]n") #inarg2
            z = b * c
            print z
        elif a == "^":
            b = input("arg1\n") #inarg1
            c = input("arg2\n") #inarg2
            z = b ** c
        elif a == "sin":
            b = input("arg1\n") #inarg1
            var = math.degrees(math.sin(b))
            print var
        elif a == "asin":
            b = input("arg1\n") #inarg1
            var = math.degrees(math.asin(b))
            print var
        elif a == "cos":
            b = input("arg1\n") #inarg1
            var = math.degrees(math.cos(b))
            print var
        elif a == "acos":
            b = input("arg1\n") #inarg1
            var = math.degrees(math.acos(b))
            print var
        elif a == "tan":
            b = input("arg1\n") #inarg1
            var = math.degrees(math.tan(b))
            print var
        elif a == "atan":
            b = input("arg1\n") #inarg1
            var = math.degrees(math.atan(b))
            print var
    elif check == "calc" :
        x = input() #takes input as expression
        print x #prints expression's result
Run Code Online (Sandbox Code Playgroud)

不是90度1的正弦?有了它,它显示为51.2左右的东西?Google的计算器也是这样做的吗?顺便说一句:这是我的python计算器

            b = input("arg1\n") #inarg1
            var = math.degrees(math.sin(b))
            print var
Run Code Online (Sandbox Code Playgroud)

这个和其他触发功能是问题所在.在大多数情况下,这只是一个简单的python计算器,但我想添加一些trig函数.

Sve*_*ach 10

您不希望将返回值转换sin()为度数 - 返回值不是角度.你想要将参数转换为弧度,因为math.sin()需要弧度:

>>> math.sin(math.radians(90))
1.0
Run Code Online (Sandbox Code Playgroud)