从键盘输入姓名、学号、成绩,并保存到文本文件中。重复进行,直到输入#号结束。 (2)从文件中读取各学生成绩,计算所有学生成绩的平均值,将成绩的最大值、最小值及平均值并存入文本文件中。 (3)将上面两个文本文件的内容合并到一个新的文本文件中。
时间: 2024-02-13 21:04:22 浏览: 70
从文本文件输入n个同学的姓名、性别、成绩,按成绩又高到底的顺序输出所有学生信息,分别求出男同学、女同学的平均成绩并输出
4星 · 用户满意度95%
好的,这是一个比较基础的文件处理问题,我可以给你提供一个 Python 的解决方案。
(1)从键盘输入姓名、学号、成绩,并保存到文本文件中。重复进行,直到输入#号结束。
```python
filename = 'scores.txt' # 文件名
with open(filename, 'a') as f: # 以追加模式打开文件
while True:
line = input('请输入姓名、学号、成绩(用空格隔开),输入#号结束:')
if line == '#': # 输入#号结束循环
break
f.write(line + '\n') # 将输入的内容写入文件并换行
```
(2)从文件中读取各学生成绩,计算所有学生成绩的平均值,将成绩的最大值、最小值及平均值并存入文本文件中。
```python
filename = 'scores.txt' # 文件名
with open(filename, 'r') as f: # 以读取模式打开文件
scores = [] # 存储所有成绩的列表
for line in f:
name, number, score = line.strip().split() # 将每行内容按空格分隔
scores.append(int(score)) # 将成绩转换为整数并添加到列表中
avg_score = sum(scores) / len(scores) # 计算平均分
max_score = max(scores) # 计算最高分
min_score = min(scores) # 计算最低分
output_filename = 'result.txt' # 输出文件名
with open(output_filename, 'w') as f: # 以写入模式打开文件
f.write('平均分:{}\n最高分:{}\n最低分:{}'.format(avg_score, max_score, min_score)) # 将结果写入文件
```
(3)将上面两个文本文件的内容合并到一个新的文本文件中。
```python
filename1 = 'scores.txt' # 文件名1
filename2 = 'result.txt' # 文件名2
output_filename = 'merged.txt' # 输出文件名
with open(output_filename, 'w') as f: # 以写入模式打开文件
with open(filename1, 'r') as f1, open(filename2, 'r') as f2: # 同时打开两个文件
f.write(f1.read()) # 将第一个文件的内容写入输出文件
f.write(f2.read()) # 将第二个文件的内容写入输出文件
```
这样,你就可以按要求将输入的内容保存到文件、从文件中读取数据并计算平均分、将多个文件内容合并到一个文件中了。
阅读全文