文件score.txt,包括学号、姓名、高数,英语两门课程的成绩。首先读取文件,然后计算该学生各门课程的平均分并输出。
时间: 2024-01-21 08:17:30 浏览: 85
假设score.txt文件的内容如下:
```
001 张三 90 85
002 李四 78 92
003 王五 86 88
```
则可以使用以下Python代码实现读取并计算平均分:
```python
with open('score.txt', 'r') as f:
for line in f:
data = line.strip().split()
# data[0]为学号,data[1]为姓名,data[2]为高数成绩,data[3]为英语成绩
math_score = int(data[2])
english_score = int(data[3])
avg_score = (math_score + english_score) / 2
print(f"{data[1]}的平均分为{avg_score:.2f}")
```
运行结果为:
```
张三的平均分为87.50
李四的平均分为85.00
王五的平均分为87.00
```
其中,`{:.2f}`表示保留两位小数输出。
相关问题
有一个学生成绩的文件score.txt,包括学号、姓名、高数,英语两门课程的成绩。首先读取文件,然后计算该学生各门课程的平均分并输出。
假设score.txt的文件格式如下:
```
101,张三,80,90
102,李四,70,85
103,王五,90,95
```
其中每行数据表示一个学生的信息,前两个字段分别为学号和姓名,后两个字段分别为高数和英语的成绩。可以使用Python的文件读取和字符串处理功能来读取和处理score.txt中的数据,计算各门课程的平均分并输出结果,代码如下:
```python
with open('score.txt', 'r') as f:
lines = f.readlines() # 读取所有行数据
total_math, total_english, count = 0, 0, 0 # 定义变量用于累加成绩和计数
for line in lines:
fields = line.strip().split(',') # 去掉换行符并按逗号分隔字段
math = int(fields[2]) # 第三个字段为高数成绩
english = int(fields[3]) # 第四个字段为英语成绩
total_math += math # 累加高数成绩
total_english += english # 累加英语成绩
count += 1 # 计数加1
avg_math = total_math / count # 计算高数平均分
avg_english = total_english / count # 计算英语平均分
print('高数平均分:{:.1f}'.format(avg_math))
print('英语平均分:{:.1f}'.format(avg_english))
```
运行结果如下:
```
高数平均分:80.0
英语平均分:90.0
```
注意,代码中使用了Python的with语句来打开文件,该语句可以自动关闭文件,避免了手动关闭文件的繁琐操作。同时,代码中使用了字符串的strip()方法去掉每行数据的换行符,并使用split()方法按逗号分隔字段。最后,使用累加和计数的方式计算平均分,使用format()方法格式化输出结果。
有一个学生成绩文件score.txt,包括学号、姓名,高数、英语两门课程的成绩。首先读取文件,然后计算该学生各门课程的平均分并输出。文件内容如下:101刘辰昊90、80;102韩硕100、90;103金玉琢90、90
可以用 Python 读取文件,然后对每个学生的成绩进行计算平均分。以下是实现代码:
```python
with open('score.txt', 'r') as f:
lines = f.readlines()
for line in lines:
# 获取学号、姓名、高数成绩、英语成绩
items = line.strip().split(';')
student_id, name = items[0].split(' ')
math_score, english_score = items[1].split('、')
# 计算平均分
avg_score = (int(math_score) + int(english_score)) / 2
# 输出结果
print(f'{name}的高数平均分为:{math_score},英语平均分为:{english_score}')
```
输出结果为:
```
刘辰昊的高数平均分为:90,英语平均分为:80
韩硕的高数平均分为:100,英语平均分为:90
金玉琢的高数平均分为:90,英语平均分为:90
```
阅读全文