5,957
社区成员
发帖
与我相关
我的任务
分享
这计算公式不都写出来了吗?让用户输入一下三边长度,再判断一下两边之和是否大于第三边,剩下的不就是套公式了吗QWQ
while True:
x = eval(input("输入三角形的第一个边长:"))
y = eval(input("输入三角形的第二个边长:"))
z = eval(input("输入三角形的第三个边长:"))
# 三条边中,两边之和大于第三边,两边之差小于第三边。
if x + y <= z or x + z <= y or z + y <= x:
print("两边之和需大于第三边,请重新输入。")
continue
p = (x + y + z) / 2
s = (p * (p - x) * (p - y) * (p - z)) ** .5
print(f"边长为{x},{y},{z}的三角形面积为:{s}")
break
a = input('请输入三边长(英文逗号分割):')
if len(a) != 3:
raise Exception('请检查输入数据')
x,y,z = a
if x+y<z or x+z<y or y+z<x or abs(x-y)>z or abs(x-z)>y or abs(y-z)>x:
raise Exception('三边长不满足构成三角形的条件')
p = (x+y+z)/2
print(f'输入三角形的面积是:{(p*(p-x)*(p-y)*(p-z))**0.5}')