代码段:
import math
a,b,c = eval(input())
if a+b>c and a+c>b and b+c>a:
s = 1/2*(a+b+c)
mji = math.sqrt(s*(s-a)*(s-b)*(s-c))
zouc = a+b+c
print('面积:%.2f,周长:%.2f' %(mji, zouc))
else:
raise (Exception)
效果:
对三边的判断,可以有更简洁的方法:
t = a,b,c = eval(input())
p = sum(t)/2
if p>max(t):
S = (p*(p-a)*(p-b)*(p-c))**0.5
if sum(map(lambda x:x*x,t))==max(t)**2*2:
print('此三角形是直角三角形')
print('面积S:%.2f,周长C:%.2f' %(S, p*2))
else:
raise Exception('输入的三边无法构成三角形!')
import math
a,b,c = eval(input())
assert a+b>c and a+c>b and b+c>a
assert a**2+b**2 == c**2 or a**2+c**2 == b**2 or b**2+c**2 == a**2
mji = math.sqrt(s*(s-a)*(s-b)*(s-c))
zouc = a+b+c
print('面积:%.2f,周长:%.2f' %(mji, zouc))