Python实现文本文件温度均值计算的代码调试求助
温度均值计算代码修正
原代码的可预见报错与缺陷
- 类型转换错误:温度值为带一位小数的浮点数(如
28.0),原代码使用int()做转换会直接触发值错误,无法识别小数格式 - 变量名拼写错误:计算均值时赋值的变量为
mn_tem,返回语句中误写为mmn_tem,会触发未定义变量的运行时报错 - 取值逻辑脆弱:依赖固定位置切片
element[6:]提取温度,一旦行内空格长度、日期格式变化就会取错值,稳定性差 - 调试代码残留:函数内多余的
print(result)会在运行时输出不必要的中间值,干扰最终结果输出
修正后的可运行代码
def get_mean_temperature(filename): with open(filename) as f: all_lines = f.read().splitlines() # 跳过第一行表头,只处理数据行 data_lines = all_lines[1:] total = 0 record_count = 0 for line in data_lines: # 按空白拆分每行,忽略日期字段,直接取温度值 _, temp_text = line.split() temp = float(temp_text) total += temp record_count += 1 return total / record_count if __name__ == "__main__": filename = "temp_log.txt" # 写入测试温度记录 with open(filename, "w") as f: f.write("DATES T.\n07-01 28.0\n08-01 33.5\n09-01 27.0\n") mean_temperature = get_mean_temperature(filename) print(f"{mean_temperature:.1f}")
运行验证
测试文件包含3条有效温度记录:28.0、33.5、27.0,总和为88.5,计算得到的均值为29.5,代码执行后将直接输出该结果。
内容的提问来源于stack exchange,提问作者Splyt
相关产品推荐
相关产品推荐

