You need to enable JavaScript to run this app. Python实现文本文件中各人员数值平均值计算及报错解决
优惠活动
大模型
产品
解决方案
定价
更多

Python实现文本文件中各人员数值平均值计算及报错解决

现有代码报错原因
  • 变量未定义:主程序调用read_txt(file_txt)后没有接收函数返回值,后续代码引用的lines无对应赋值,直接触发NameError
  • 类型错误:read_txt返回的是原始字符串构成的行列表,直接对字符串列表执行sum()操作会触发类型不支持的报错
  • 逻辑偏差:原代码试图对所有数据计算全局平均值,没有按行拆分人名与对应数值的结构,无法实现逐人计算平均值的需求
修正实现

Functions.py中的read_txt功能(读取文件全量行内容并返回)符合设计预期,无需修改,仅调整主程序的解析逻辑即可:

  1. 接收read_txt返回的行数据
  2. 逐行清理首尾无效空白、按逗号拆分字段
  3. 分离人名与对应数值,将数值字段转为整数类型
  4. 计算单人维度的平均值,按指定格式输出

修正后的主程序代码:

from Functions import read_txt

file_txt = input("input file: ")
# 获取文件读取结果
lines = read_txt(file_txt)

for line in lines:
    clean_line = line.strip()
    # 跳过空行避免解析异常
    if not clean_line:
        continue
    # 拆分逗号分隔的字段
    fields = clean_line.split(",")
    name = fields[0]
    # 提取数值并转为整数
    nums = [int(item) for item in fields[1:]]
    # 计算平均值
    avg = sum(nums) / len(nums)
    # 整数结果去除多余小数后缀
    if avg.is_integer():
        avg = int(avg)
    # 按要求格式输出
    print(f"{name}: {avg}")
运行效果

输入文件名boys.txt后,输出与要求格式完全匹配:

ed lin: 2.5
thomas block: 4

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.11 18:36:03