如何编写Python程序计算TXT文件每行空格分隔数字的平均值
实现方案
核心处理逻辑
你拿到的每一行字符串可以按以下步骤处理:
- 去除首尾的换行符、多余空白字符
- 按空白分割得到单个数字的字符串列表
- 将所有字符串转为数值类型
- 求和后除以数值个数得到平均值
基于你现有代码的修改版本
如果你不想调整已写的代码结构,直接在循环内补充逻辑即可,记得最后手动关闭文件:
f = open(input("File: ")) for i in f: # 跳过空行 stripped_line = i.strip() if not stripped_line: continue # 分割字符串并转为整数 num_list = [int(num) for num in stripped_line.split()] # 计算并打印平均值,可按需调整小数保留位数 avg = sum(num_list) / len(num_list) print(avg) f.close()
更推荐的写法
用with open语句自动管理文件句柄,无需手动关闭文件,还可以加上行号计数和异常处理:
with open(input("File: "), 'r', encoding='utf-8') as f: # enumerate用来计数行号,start=1表示从第一行开始计数 for line_num, line in enumerate(f, start=1): stripped_line = line.strip() if not stripped_line: continue num_str_list = stripped_line.split() # 异常处理:避免行内有非数字内容导致程序崩溃 try: num_list = [int(num_str) for num_str in num_str_list] except ValueError: print(f"第{line_num}行存在非数字内容,跳过计算") continue avg = sum(num_list) / len(num_list) print(f"第{line_num}行平均值:{avg:.2f}")
注意事项
- 如果你的TXT文件中存储的是小数,把代码中的
int替换为float即可 split()方法默认按任意空白字符分割,不管数字之间是单个空格、多个空格还是制表符都可以正常处理
内容的提问来源于stack exchange,提问作者kankan77
相关产品推荐
相关产品推荐

