Python3 计算三角形的面积

方法 1:已知底和高计算面积

 
这是最简单的方法,核心公式为:面积 = (底 × 高) / 2
 
以下是带输入验证的完整代码:
def calculate_area_by_base_height():
    """根据底和高计算三角形面积"""
    try:
        # 获取用户输入并转换为浮点数
        base = float(input("请输入三角形的底(数值):"))
        height = float(input("请输入三角形的高(数值):"))
        
        # 验证输入的数值是否为正数
        if base <= 0 or height <= 0:
            print("错误:底和高必须是大于0的数值!")
            return
        
        # 计算面积
        area = (base * height) / 2
        print(f"三角形的面积为:{area:.2f}")  # 保留2位小数输出
        
    except ValueError:
        # 处理非数字输入的异常
        print("错误:请输入有效的数字(如 5、8.5 等)!")

# 调用函数执行计算
calculate_area_by_base_height()
 
 

方法 2:已知三边长度(海伦公式)

 
若只知道三边长度,使用海伦公式:
 
  1. 先计算半周长 s = (a + b + c) / 2
  2. 面积 = √[s (s-a)(s-b)(s-c)]
     
    需先验证三边是否能构成三角形(任意两边之和大于第三边)。 
import math  # 导入数学库,用于计算平方根

def calculate_area_by_sides():
    """根据三边长度(海伦公式)计算三角形面积"""
    try:
        # 获取三边长度并转换为浮点数
        a = float(input("请输入三角形第一条边的长度:"))
        b = float(input("请输入三角形第二条边的长度:"))
        c = float(input("请输入三角形第三条边的长度:"))
        
        # 验证边长是否为正数
        if a <= 0 or b <= 0 or c <= 0:
            print("错误:边长必须是大于0的数值!")
            return
        
        # 验证是否能构成三角形
        if (a + b <= c) or (a + c <= b) or (b + c <= a):
            print("错误:这三个长度无法构成三角形(任意两边之和需大于第三边)!")
            return
        
        # 海伦公式计算
        s = (a + b + c) / 2  # 半周长
        area = math.sqrt(s * (s - a) * (s - b) * (s - c))
        print(f"三角形的面积为:{area:.2f}")  # 保留2位小数输出
        
    except ValueError:
        print("错误:请输入有效的数字(如 3、4.5 等)!")

# 调用函数执行计算
calculate_area_by_sides()
 

代码关键解释

 
  1. 异常处理try-except 块捕获用户输入非数字的情况,避免程序崩溃;
  2. 输入验证:检查数值是否为正数、三边是否符合三角形构成条件,保证计算逻辑的合法性;
  3. 精度控制:用 :.2f 格式化输出,让结果更易读;
  4. 海伦公式依赖:通过 math.sqrt() 计算平方根,需先导入 math 库。
 

测试用例

 
  • 方法 1:输入底 = 10,高 = 5 → 输出面积 = 25.00;
  • 方法 2:输入三边 = 3、4、5 → 输出面积 = 6.00。

posted on 2026-01-06 09:12  小陶coding  阅读(10)  评论(0)    收藏  举报