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
偶然发现了讯飞星火的计算错误。