已知三点的坐标,首先判断是否构成三角形,如果能构成,则求该三角形的面积,否则提示无法构成三角形。
提示: (1)点(x1,y1)和 (x2,y2)之间的距离公式为d=√/(x1-x2)2+(Y1-y2)2;“
(2)构成三角形的条件:任二边之和大于第三边;”
(3)三角形的面积公式s=√p(p-a)(p-b)(p-c),若a.b,c 分别为三角形的边长,p=(a+b+C)/2
已知三点的坐标,首先判断是否构成三角形,如果能构成,则求该三角形的面积,否则提示无法构成三角形。
提示: (1)点(x1,y1)和 (x2,y2)之间的距离公式为d=√/(x1-x2)2+(Y1-y2)2;“
(2)构成三角形的条件:任二边之和大于第三边;”
(3)三角形的面积公式s=√p(p-a)(p-b)(p-c),若a.b,c 分别为三角形的边长,p=(a+b+C)/2
参考方法:
import math
import unicodedata
def is_number(s):
try:
float(s)
return True
except ValueError:
pass
try:
unicodedata.digit(s) # digit 把一个合法的数字字符串转换为数字值
return True
except (TypeError, ValueError):
pass
return False
def calculate(a, b, c):
if is_number(a) and is_number(b) and is_number(c):
a = float(a)
b = float(b)
c = float(c)
if a > 0 and b > 0 and c >0:
while a+b<=c or a+c<=b or b+c<=a:
print("输入的边长无法构成三角形!!!")
a = input('输入三角形边长a: ')
b = input('输入三角形边长b: ')
c = input('输入三角形边长c: ')
calculate(a,b,c)
p = (a+b+c)/2
area = math.sqrt(p*(p - a)(p - b)(p - c))
print("三角形面积为:%0.2f" %area)
else:
print("三角形的边长必须大于0,请输入大于0的数!!!")
else:
print('请输入数字类型!!!')
a = input('输入三角形边长a: ')
b = input('输入三角形边长b: ')
c = input('输入三角形边长c: ')
calculate(a,b,c)