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

Python不使用pandas读取TXT文件计算指定字段总和问题问询

TXT文件指定字段求和Python代码修复方案

原代码问题说明

  • 未定义全局累加的总销售额变量,getTotal函数无法访问循环内的personTotal局部变量,且sum()为序列求和方法,直接传入单个销售额数值用法错误
  • 调用getTotal时未加括号,仅将函数对象赋值给total变量,未实际执行计算逻辑
  • 缺少单条记录销售额累加入总销售额的对应流程

修复后可运行代码

def main():
    # 初始化总销售额为0
    total = 0
    print("%-8s %-21s %-6s %10s %14s" % ("Name", "Item", "Price", "Quantity", "Person Total"))  
    
    # with语句自动管理文件关闭,避免资源泄露
    with open("makewaves.txt", "r", encoding="utf-8") as f:                          
        for line in f:
            # 先去除首尾空白、换行符再拆分字段
            name, item, price, quantity = line.strip().split(",")
            price = float(price)
            quantity = int(quantity)
            # 计算单条记录销售额
            personTotal = price * quantity
            # 累加至总销售额
            total += personTotal

            print()
            print("%-8s %-21s $%-5.2f %6d %14.2f" % (name, item, price, quantity, personTotal))
            print()
       
    # 格式化输出总金额,保留两位小数
    print(" Total sales are : $%.2f" % total)

if __name__ == "__main__":
    main()

核心修改点

  • 移除冗余的getTotal函数,直接在循环内完成累加操作,逻辑更简洁
  • 新增总销售额变量total初始化为0,每次计算完单条销售额后同步累加
  • 改用with语法打开文件,执行结束后自动关闭文件,避免异常场景下的资源泄露
  • 新增strip()处理每行的换行符、首尾空格,避免字段拆分错误
  • 优化总销售额输出格式,固定保留两位小数,符合金额类数据的展示规范

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 19:45:04