我需要一些学校项目代码的帮助。
import math
v = 9.412
g = 9.81
y = -1.5
def radToDeg(x):
return((x / math.pi) * 180)
def sqrt(x):
return(x ** 0.5)
def CalculateAngle(x):
return(radToDeg(math.atan(((v ** 2) + (sqrt((v ** 4) - (g * ((g * x ** 2) + (2 * y * v ** 2)))))) / (g * x))))
print(CalculateAngle(90.0297))
当我运行程序时,收到错误:
Traceback (most recent call last):
File "C:/Users/Owner/Desktop/ballista.py", line 16, in <module>
print(CalculateAngle(float(90.0297)))
File "C:/Users/Owner/Desktop/ballista.py", line 14, in CalculateAngle
return float(radToDeg(math.atan(((v ** 2) + (sqrt((v ** 4) - (g * ((g * x ** 2) + (2 * y * v ** 2)))))) / (g * x))))
TypeError: can't convert complex to float
有人可以帮我解决这个问题吗?谢谢!
答案 0 :(得分:1)
请参阅此ValueError: negative number cannot be raised to a fractional power
这可能是由于提高功率优先于一元减号。
答案 1 :(得分:0)
1)您正在调用名为radToDeg
的函数,其输入角度为度。确保你传递的是函数的正确参数。
2)为什么要定义自己的sqrt
而非使用math.sqrt
?
3)当我运行此代码时,我得到一个完全不同的错误:ValueError: negative number cannot be raised to a fractional power
。这正是你想要运行的吗?