You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python计算并输出文本文件中的成本平均值与每升成本

完善Python代码计算汽油成本的平均值与每升成本

原代码存在的问题

  • 分割文件内容后得到的是字符串列表,直接执行sum(s)会触发TypeError,因为字符串无法直接求和
  • 手动删除列表元素的逻辑冗余且易出错,没有正确跳过表头行
  • 重复打开文件造成资源浪费
  • 未实现每升成本的计算逻辑

修正后的完整代码

# 初始化存储升数和成本的列表
liters = []
costs = []

# 一次性读取并处理文件数据
with open('petrolPrice.txt') as f:
    # 跳过第一行表头
    next(f)
    for line in f:
        # 处理每行数据,兼容制表符或空格分隔
        parts = line.strip().split()
        if len(parts) != 2:
            continue  # 跳过格式异常的行
        
        # 将字符串转换为浮点数,存入对应列表
        liter = float(parts[0])
        cost = float(parts[1])
        liters.append(liter)
        costs.append(cost)

# 计算成本平均值(每次加油的平均花费)
average_cost = sum(costs) / len(costs)
# 计算每升平均成本(总成本除以总升数)
cost_per_liter = sum(costs) / sum(liters)

# 格式化输出结果,保留两位小数
print(f"成本平均值: {average_cost:.2f}")
print(f"每升成本: {cost_per_liter:.2f}")

代码说明

  1. 跳过表头:使用next(f)直接跳过第一行的表头,逻辑更清晰
  2. 逐行处理数据:避免一次性读取大文件占用过多内存,同时逐行解析更稳定
  3. 类型转换:将读取的字符串转换为浮点数,确保数值计算的正确性
  4. 异常处理:跳过格式错误的行,避免程序崩溃
  5. 高效计算:一次读取文件完成所有数据收集,后续只需对列表进行求和计算即可
  6. 格式化输出:使用:.2f格式化结果,符合金额类数据的显示习惯

内容的提问来源于stack exchange,提问作者Valentine Lancin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 23:35:23