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:已知三边长度(海伦公式)
若只知道三边长度,使用海伦公式:
- 先计算半周长
s = (a + b + c) / 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()
代码关键解释
- 异常处理:
try-except块捕获用户输入非数字的情况,避免程序崩溃; - 输入验证:检查数值是否为正数、三边是否符合三角形构成条件,保证计算逻辑的合法性;
- 精度控制:用
:.2f格式化输出,让结果更易读; - 海伦公式依赖:通过
math.sqrt()计算平方根,需先导入math库。
测试用例
- 方法 1:输入底 = 10,高 = 5 → 输出面积 = 25.00;
- 方法 2:输入三边 = 3、4、5 → 输出面积 = 6.00。
浙公网安备 33010602011771号