我在python中创建了一个庞大的计算器,但我遇到了一个问题。我试图使用余弦定律来找到SSS三角形中的角度,我无法看到我出错的地方。
library(data.table)
table <- data.table(a = c(1,NA,2,1), b= c(1,1,3,2))#creates the data table structure
table[,c:=ifelse(is.na(a),0,a+b)]#creates the column c based on the condition
> table
a b c
1: 1 1 2
2: NA 1 0
3: 2 3 5
4: 1 2 3
每当运行它时都会给出错误
elif qchoice5 == 4:
while True:
try:
print("======================================================================")
a = float(input("what is side a?"))
break
except ValueError:
print("======================================================================")
print("please enter a valid option")
while True:
try:
print("======================================================================")
b = float(input("what is side b?"))
break
except ValueError:
print("======================================================================")
print("Please enter a valid option")
while True:
try:
print("======================================================================")
c = float(input("what is side c?"))
break
except ValueError:
print("======================================================================")
print("Please enter a valid option")
print(((b**2)+(c**2)-(a**2))/(2*a*b))
ans = math.acos((((b**2)+(c**2)-(a**2))/(2*a*b)))
print(ans)
任何人都可以给我任何关于如何使其工作的指示吗?
答案 0 :(得分:0)
如果没有有效的MCVE,我只能从质量保证的角度来做这件事。我看到了一些问题:
acos
的值超出范围。2bc
,而不是2ab
。仅供参考,如果你在Python 2中使用整数,你会遇到一个问题:除法是整数除法,几乎所有东西都会返回acos(0)
,这就是数学。 Pi / 2相
尝试这个来纠正最后两个问题(#2和整数除法):
ans = math.acos((((b**2)+(c**2)-(a**2))/(2.0*b*c)))