python 中的三角形

Triangle in python

我的程序有问题,我必须这样做...这里是说明:编写一个名为 triangle.py 的程序,它使用一个取三角形边长的值返回函数作为参数和 returns 三角形的面积和周长。提示用户在主函数中从键盘输入边长,然后调用第二个函数。显示面积和周长,精确到小数点后一位。注意:使用苍鹭公式查找该区域。我做到了,它奏效了,但问题是他希望我们使用一个函数,面积和周长都 returns ..所以我用一个函数重新编写了程序,但我一直收到一个错误,说 per is not defined ...我几乎尝试了所有方法来修复它,在线查看但没有任何效果。 :( 这是我的代码:

def main():

    a = float(input('Enter the length of the first side: '))
    b = float(input('Enter the length of the second side: '))
    c = float(input('Enter the length of the third side: '))



    print('The perimeter of the triangle is: ', format(per(a, b, c),',.1f'))

    print('The area of the triangle is: ', format(area(a, b, c),',.1f'))

def area_per(a, b, c):

    per = a + b + c
    s = per / 2
    area = (s*(s-a)*(s-b)*(s-c)) ** 0.5
    return area_per


main()

这里的问题是您定义的 "per" 变量是 area_per 函数的局部变量。

如果您想要正确的范围,您需要创建另一个位于该函数之外的函数。

def main():

    a = float(input('Enter the length of the first side: '))
    b = float(input('Enter the length of the second side: '))
    c = float(input('Enter the length of the third side: '))



    print('The perimeter of the triangle is: ', format(per(a, b, c),',.1f'))

    print('The area of the triangle is: ', format(area_per(a, b, c),',.1f'))

def area_per(a, b, c):

    p = per(a,b,c)
    s = p / 2
    area = (s*(s-a)*(s-b)*(s-c)) ** 0.5
    return area

def per(a,b,c):
    return a+b+c  

main()