如果我选择missing angle function(缺少角度功能),例如a=10、b=10、c=10,则角度的预期输出为60度,但程序的输出为0.1546
import math, sys
def missingAngle():
sideA = int(input("size of side a = "))
sideB = int(input("size of side b = "))
sideC = int(input("size of side c = "))
answer = math.acos((sideB**2 + sideC**2 - sideA**2) / (2 * sideB * sideC))
return answer
def missingSide():
angleA = int(input("size of angle A = "))
sideB = int(input("size of side b = "))
sideC = int(input("size of side c = "))
answer = math.sqrt(sideB**2 + sideC**2 - 2 * sideB * sideC * math.cos(angleA))
return answer
missingSideOrAngle = input("Are you trying to work out the missing angle or side?(Angle/Side) = ")
while True:
if missingSideOrAngle.title() == "Angle":
print("Your answer is = " + str(missingAngle()))
sys.exit()
elif missingSideOrAngle.title() == "Side":
print("Your answer is = " + str(missingSide()))
sys.exit()
else:
missingSideOrAngle = input("Please enter a valid string(Angle/Side) = ")
我永远无法重现产生错误0.1546的错误
以下是您的程序,其中有一些调整可以帮助您扩展程序的功能:
我把它做成了一个实际的循环,所以它会让用户无休止地运行场景,直到他们点击
Ctrl-C
或输入引起未处理错误的内容。我没有试图解释所有可能的错误missingAngle
用于返回度数。它还包括一个“try-except”块,用于捕捉当三条边不能形成真正的三角形(例如:12、45、85)时将发生的错误。输入被转换为浮点数,因此用户可以输入距离或角度的小数,并且返回的格式为渲染到小数点后2位这会在路上帮助你。您可能希望为非数字的数字字段的用户输入设计错误处理,并在
missingSide
上运行一些测试,以查看用户输入可能出现的错误并捕获这些错误。一个你可能想要尝试的是给它一个180度的角度。某些值可能不会产生实际错误,但可能会产生意外结果祝你好运
相关问题 更多 >
编程相关推荐