1 回答
TA贡献1841条经验 获得超3个赞
我永远无法重现产生错误 0.1546 的错误。
这是您的程序,经过一些调整,将帮助您扩展程序的功能:
import math
def missingAngle():
sideA = float(input("size of side a = "))
sideB = float(input("size of side b = "))
sideC = float(input("size of side c = "))
try:
answer = math.acos((sideB**2 + sideC**2 - sideA**2) / (2 * sideB * sideC))
return f'Your answer is: {math.degrees(answer):.2f} degrees'
except ValueError:
return 'Values given cannot form a triangle'
def missingSide():
angleA = math.radians(float(input("size of angle A (degrees) = ")))
sideB = float(input("size of side b = "))
sideC = float(input("size of side c = "))
answer = math.sqrt(sideB**2 + sideC**2 - 2 * sideB * sideC * math.cos(angleA))
return f'Your answer is: {answer:.2f} units'
while True:
missingSideOrAngle = input("Are you trying to work out the missing angle or side?(Angle/Side) = ")
if missingSideOrAngle.title() == "Angle":
print(missingAngle())
elif missingSideOrAngle.title() == "Side":
print(missingSide())
else:
missingSideOrAngle = input("Please enter a valid string(Angle/Side) = ")
我将其设置为一个实际的循环,因此它将让用户无休止地运行场景,直到他们点击Ctrl-C或输入引发未处理错误的内容。我没有尝试解释所有可能的错误。
这missingAngle是为了返回学位。它还包含一个“try- except”块来捕获如果三边不能形成真正的三角形(例如:12、45、85)时将发生的错误。输入被转换为浮点数,因此用户可以输入距离或角度的小数,并且返回被格式化为呈现到小数点后两位。
这应该对您有所帮助。您可能需要为非数字的数字字段的用户输入设计错误处理,并运行一些测试以查看missingSide用户输入可能出现的问题并捕获这些问题。您可能想要尝试的一种方法是给它一个 180 度的角度。某些值可能不会产生实际错误,但可能会产生意想不到的结果。
祝你好运!
添加回答
举报