将一组学生的信息(姓名、语文成绩、数学成绩、英语成绩)写入到文件score.txt中,一行存储一个学生的信息,各字段间以逗号分隔。然后读取文件中内容计算每个学生的平均分,将结果(姓名,平均成绩)写入到文件result.txt中。
时间: 2023-07-15 21:15:43 浏览: 91
以下是使用Python实现的代码:
```python
# 写入学生信息到文件
with open('score.txt', 'w') as f:
f.write('张三,80,90,85\n')
f.write('李四,75,85,90\n')
f.write('王五,90,80,95\n')
f.write('赵六,85,95,85\n')
# 读取学生信息并计算平均分
with open('score.txt', 'r') as f1, open('result.txt', 'w') as f2:
for line in f1:
items = line.strip().split(',') # 去掉换行符并按逗号分隔
name = items[0]
scores = [int(x) for x in items[1:]] # 将分数转换为整数
avg_score = sum(scores) / len(scores) # 计算平均分
f2.write(f'{name},{avg_score:.2f}\n') # 写入结果到文件,保留两位小数
```
运行上述代码后,会生成score.txt和result.txt两个文件。其中score.txt保存了学生的信息,result.txt保存了每个学生的平均分。可以使用文本编辑器打开result.txt文件查看结果。
相关问题
题目要求从键盘输入10个学生的学号、姓名,以及数学、语文和英语成绩,写入到文本文件f3.txt中,再从文件中取出数据,计算每个学生的总成绩和平均分,同时将结果显示在屏幕上。得代码
好的,以下是Python代码实现:
```python
# 从键盘输入学生信息,并将其写入到文件f3.txt中
with open('f3.txt', 'w') as f:
for i in range(10):
# 从键盘输入学生信息
stu_id = input('请输入第{}个学生的学号:'.format(i+1))
stu_name = input('请输入第{}个学生的姓名:'.format(i+1))
math_score = float(input('请输入第{}个学生的数学成绩:'.format(i+1)))
chinese_score = float(input('请输入第{}个学生的语文成绩:'.format(i+1)))
english_score = float(input('请输入第{}个学生的英语成绩:'.format(i+1)))
# 将学生信息写入到文件中
f.write('{} {} {} {} {}\n'.format(stu_id, stu_name, math_score, chinese_score, english_score))
# 从文件中读取学生信息,并计算每个学生的总成绩和平均分,并输出到屏幕上
with open('f3.txt', 'r') as f:
for line in f:
# 从文件中读取学生信息
stu_id, stu_name, math_score, chinese_score, english_score = line.strip().split()
# 计算每个学生的总成绩和平均分
total_score = float(math_score) + float(chinese_score) + float(english_score)
avg_score = total_score / 3
# 输出每个学生的总成绩和平均分
print('{} {} 总成绩: {:.2f} 平均分: {:.2f}'.format(stu_id, stu_name, total_score, avg_score))
```
运行代码,按照题目要求输入学生信息,程序会自动将学生信息写入到文件f3.txt中,并从文件中读取学生信息,计算每个学生的总成绩和平均分,并输出到屏幕上。
python创建一个名为 grade.csv 的文件,通过 input()函数向文件中写入学生相关信息,格式为“姓名,性别,年龄,语文成绩,数学成绩,英语成绩”,当输入“-1”时结束输入,统计所有学生的总成绩、排序,井写入新文件 statistics.csv 中。
可以使用以下代码实现:
```python
import csv
# 创建 grade.csv 文件并写入表头
with open('grade.csv', 'w', newline='') as f:
writer = csv.writer(f)
writer.writerow(['姓名', '性别', '年龄', '语文成绩', '数学成绩', '英语成绩'])
# 向 grade.csv 文件中写入学生信息
while True:
info = input('请输入学生信息(格式为“姓名,性别,年龄,语文成绩,数学成绩,英语成绩”,输入“-1”结束输入):')
if info == '-1':
break
with open('grade.csv', 'a', newline='') as f:
writer = csv.writer(f)
writer.writerow(info.split(','))
# 读取 grade.csv 文件中的学生信息并进行统计和排序
students = []
total_scores = []
with open('grade.csv', 'r') as f:
reader = csv.reader(f)
header = next(reader) # 跳过表头
for row in reader:
name, gender, age, chinese, math, english = row
total_score = int(chinese) + int(math) + int(english)
students.append([name, gender, age, chinese, math, english, total_score])
total_scores.append(total_score)
total_scores.sort(reverse=True)
# 将统计结果写入 statistics.csv 文件中
with open('statistics.csv', 'w', newline='') as f:
writer = csv.writer(f)
writer.writerow(['姓名', '性别', '年龄', '语文成绩', '数学成绩', '英语成绩', '总成绩'])
for total_score in total_scores:
for student in students:
if student[6] == total_score:
writer.writerow(student[:-1] + [student[6]])
```
首先,我们使用 csv 模块创建 grade.csv 文件并写入表头。然后,通过循环向文件中写入学生信息,直到输入“-1”结束。每个学生信息以列表形式存储。接着,我们读取 grade.csv 文件中的学生信息,统计每个学生的总成绩,并将学生信息和总成绩存储在 students 列表和 total_scores 列表中。最后,我们将统计结果按照总成绩进行排序,并将结果写入 statistics.csv 文件中。
阅读全文