python3中的阈值或abs功能

python3中的阈值或abs功能,python,floating-point,Python,Floating Point,我正在学习Python 3,学习如何像计算机科学家一样思考:使用Python 3学习。有一个练习题,用提示阈值=1e-7计算直角 如果ABX-y

我正在学习Python 3,学习如何像计算机科学家一样思考:使用Python 3学习。有一个练习题,用提示阈值=1e-7计算直角 如果ABX-y<阈值: 我写了这段代码。但我没有理解我在哪里以及如何使用提示指令。在互联网上,人们使用findHypot功能

base = float(input("enter your base value in cm"))
per = float(input("enter your base value in cm"))
hyp = float(input("enter your base value in cm"))
if (base**2) + (per**2) == (hyp**2):
   print("true")
else:
   print("false")

由于数值不准确,无法检查浮点数是否相等。您只能检查两个浮动之间的差异是否变得非常小

因此,在提示中,您应该编写如下内容:

base = float(input("enter your base value in cm"))
per = float(input("enter your base value in cm"))
hyp = float(input("enter your base value in cm"))
if abs((base**2) + (per**2) - (hyp**2))< 1e-7:
   print("true")
else:
   print("false")

谢谢现在我必须扩展上面的程序,这样函数的边可以以任何顺序给出,这意味着以角度或厘米为单位输入。斜边将是三个值中最大的。另外两个的顺序无关紧要,因此如果用户输入3个值,则取最大值作为斜边。如果有两个相等的值,另一个较小,即没有唯一的最大值,三角形不是直角三角形。我简单地使用了这个技术base=intinpunter你的基本值(单位:厘米)/intinpunter你的垂直值(单位:厘米)hyp=intinpunter如果base2+per2==hyp**2:printtrue,则以厘米为单位的低血压值,否则:printfalse@learner但您的解决方案不适用于非整数距离,这在这里应该很方便,因为您的解决方案只适用于Pytagore三元组