我正在尝试用python制作一个余弦定律计算器

我正在尝试用python制作一个余弦定律计算器,python,python-2.7,Python,Python 2.7,我正试图写一个程序,它的边是“a”,边是“b”,角是“C”。然后它将输出侧“c” 我得到一个整数错误,我不知道出了什么问题 这是我的密码: import math def triangle(): a=input("Enter side a:") b=input("Enter side b:") angle=input("What is the angle:") side=(a**2)+(b**2) rest=(2*(a*b))(math.cos(angle

我正试图写一个程序,它的边是“a”,边是“b”,角是“C”。然后它将输出侧“c”

我得到一个整数错误,我不知道出了什么问题 这是我的密码:

import math
def triangle():
    a=input("Enter side a:")
    b=input("Enter side b:")
    angle=input("What is the angle:")
    side=(a**2)+(b**2)
    rest=(2*(a*b))(math.cos(angle))
    done=side-rest
    end=math.sqrt(done)
    print end
triangle()

可能是因为您在以下内容中遗漏了“*”:

应该是:

rest=(2*(a*b)) * (math.cos(angle))

您的问题是这一行:

rest=(2*(a*b))(math.cos(angle))
您缺少一个
*
操作员:

rest=(2*(a*b))*(math.cos(angle))
您还过度使用了括号:

rest = 2 * a * b * math.cos(angle)

问题的原因是python认为您试图调用表达式
(2*(a*b))
的结果。但是,这是一个
int
,它不是一个可调用的对象。

TypeError:“int”对象不是可调用的,与您的错误无关,但您是否输入了以度或弧度为单位的角度?如果是度数,则在将其传递给math.cos()之前应将其转换为弧度。感谢Jim Lewis修复了计算错误。我想注意,任何对象声明后面的左括号将尝试调用该对象。Python认为您所说的是类似于
2*(a*b)。\uuuu调用(math.cos(angle))
rest = 2 * a * b * math.cos(angle)