Initial commit: Python learning project with examples and exercises

This commit is contained in:
2025-07-20 17:08:50 +08:00
commit bc7bb56271
111 changed files with 11535 additions and 0 deletions
+63
View File
@@ -0,0 +1,63 @@
#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)