用python语言表达

已知三点的坐标,首先判断是否构成三角形,如果能构成,则求该三角形的面积,否则提示无法构成三角形。

提示: (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

参考方法:

通过用户输入三角形三边长度,并计算三角形的面积

已知三角形三边a,b,c,则

(海伦公式)(p=(a+b+c)/2)

S=sqrt[p(p-a)(p-b)(p-c)]

=sqrt[(1/16)(a+b+c)(a+b-c)(a+c-b)(b+c-a)]

=1/4sqrt[(a+b+c)(a+b-c)(a+c-b)(b+c-a)]

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)