python写三角形求面积,三边的值,要求使用关键字参数传递

问题遇到的现象和发生背景

计算三角形面积。要求:用Python编程实现,接收用户从键盘输入的三角形的三边长,判断任意两边之和能否大于第三边,
如果大于,则计算三角形的面积,并输出,否则显示“你所输入的三边长不能构成三角形”。运行程序一次,可以计算多个三角形的面积。(功能简称:三角形)
要求:
(1)计算三角形面积,在一个自定义函数fun(a,b,c)中完成,该函数名可以改成其它名字。该函数返回面积值。
(2)主调程序中完成功能:三边长数值的输入、判断能否构成三角形和面积值的输出。
(3)形参a、b、c接收主调程序传递过来的实参:三边的值,要求使用关键字参数传递。

问题相关代码,请勿粘贴截图

a = float(input('输入三角形第一边长:'))
b = float(input('输入三角形第二边长: '))
c = float(input('输入三角形第三边长:'))
if a + b > c and a + c > b and b + c > a:
def sjxmj():
return a * b * (1 - ((a ** 2 + b ** 2 - c ** 2) / (2 * a * b)) ** 2) ** 0.5 /2
print("三角形的面积为:",sjxmj())
else:
print('你所输入的三边长不能构成三角形')

运行结果及报错内容

能正常运行,但是没有使用关键字参数

我的解答思路和尝试过的方法
我想要达到的结果

符合题目要求

是这个意思吗

a = float(input('输入三角形第一边长:'))
b = float(input('输入三角形第二边长: '))
c = float(input('输入三角形第三边长:'))

def fun(a, b, c):
    return a * b * (1 - ((a ** 2 + b ** 2 - c ** 2) / (2 * a * b)) ** 2) ** 0.5 / 2

if a + b > c and a + c > b and b + c > a:
    print("三角形的面积为: ", fun(a, b, c))
else:
    print('你所输入的三边长不能构成三角形')

运行结果如下:

img


def func(a, b, c):
    return a * b * (1 - ((a ** 2 + b ** 2 - c ** 2) / (2 * a * b)) ** 2) ** 0.5 / 2


if __name__ == '__main__':
    a = float(input('输入三角形第一边长:'))
    b = float(input('输入三角形第二边长: '))
    c = float(input('输入三角形第三边长:'))
    if a + b > c and a + c > b and b + c > a:
        result = func(a, b, c)
        print("三角形的面积为:", result)
    else:
        print('你所输入的三边长不能构成三角形')

已知三边,三角形面积公式一般选用海伦公式:
S=(p*(p-a)*(p-b)*(p-c))**0.5, 其中p=(a+b+c)/2

a = float(input('输入三角形第一边长:'))
b = float(input('输入三角形第二边长: '))
c = float(input('输入三角形第三边长:'))
 
def fun(a, b, c):
    p = (a+b+c)*0.5
    return (p*(p-a)*(p-b)*(p-c))**0.5
 
if a + b > c and a + c > b and b + c > a:
    print("三角形的面积为: ", fun(a, b, c))
else:
    print('你所输入的三边长不能构成三角形')