#student_scores def read_scores(filename): student_scores = {} try: file = open(filename, 'r',encoding='utf-8') next(file) # 跳过第一行(标题行) for line in file: name, chinese, math, english = line.strip().split() scores = [float(chinese), float(math), float(english)] student_scores[name] = scores return student_scores except FileNotFoundError: print(f"错误:文件'{filename}'不存在。") return {} # 返回空字典 except ValueError: print("文件格式错误,每行应该包含姓名和三门课程的成绩。") return {} # 返回空字典 except Exception as e: print(f"读取文件时发生错误:{e}") return {} # 返回空字典 def calculate_averages(student_scores): averages = {} for name, scores in student_scores.items(): averages[name] = sum(scores) / len(scores) return averages def write_averages_to_file(filename, averages): try: file=open(filename, 'w') file.write("姓名 平均成绩\n") for name, average in averages.items(): file.write(f"{name} {average:.2f}\n") except Exception as e: print(f"写入文件时发生错误:{e}") # 主程序 scores_filename = 'student_scores.txt' averages_filename = 'student_averages.txt' # 读取成绩 student_scores = read_scores(scores_filename) # 如果 student_scores 是空字典,则不进行后续操作 if student_scores: # 计算平均成绩 averages = calculate_averages(student_scores) # 将平均成绩写入文件 write_averages_to_file(averages_filename, averages) else: print("没有数据可用于计算平均成绩。") fo=open('student_scores.txt','r',encoding='UTF-8') fo_line=fo.readlines() infor={} for i in range(1,len(fo_line)): name,C,M,E=fo_line[i].strip().split(' ') print(name,C,M,E) infor[name]=(float(C),float(M),float(E)) print(infor)