读取csv文件计算并输出学生学号和平均值 【问题描述】有一个stu-scores.csv文件保存若干名学生学号和三门课成绩,要求读出这个文件的数据,计算平均值,然后在屏幕上输出所有学生学号和平均值(平均成绩统一保留2位小数)。注意:(1)先下载stu-scores.csv文件,可以放到任何位置;(2)在系统提交代码时,切记用open()打开文件时第一个参数只写stu-scores.csv,不写文件路径,即要删除调试代码时的文件路径)。 stu-scores.csv 【输入形式】读取.csv文件中的数据 【输出形式】利用print()语句在屏幕上输出 【样例输入】 【样例输出】 所有学生信息 ['sno', 'Eng', 'Math', 'Com'] ['abc0', '45', '68', '60'] ['abc1', '85', '79', '88'] ['abc2', '80', '61', '43'] ['abc3', '93', '90', '92'] ['abc4', '56', '70', '48'] 学号和平均值 abc0,57.67 abc1,84.00 abc2,61.33 abc3,91.67 abc4,58.00 【样例说明】 【评分标准】
时间: 2023-06-27 10:06:31 浏览: 505
```
import csv
with open('stu-scores.csv', 'r', newline='', encoding='utf-8') as f:
reader = csv.DictReader(f)
headers = reader.fieldnames # 表头
data = [] # 存储学号和成绩的列表
for row in reader:
sno = row['sno']
eng = float(row['Eng'])
math = float(row['Math'])
com = float(row['Com'])
avg_score = round((eng + math + com) / 3, 2) # 计算平均成绩并保留两位小数
data.append((sno, avg_score))
print("所有学生信息", headers)
for item in data:
print(item[0] + ',' + str(item[1]))
```
输出结果为:
```
所有学生信息 ['sno', 'Eng', 'Math', 'Com']
abc0,57.67
abc1,84.0
abc2,61.33
abc3,91.67
abc4,58.0
```
相关问题
【问题描述】有一个stu-scores.csv文件保存若干名学生学号和三门课成绩,要求读出这个文件的数据,计算平均值,然后在屏幕上输出所有学生学号和平均值(平均成绩统一保留2位小数)。注意:(1)先下载stu-scores.csv文件,可以放到任何位置;(2)在系统提交代码时,切记用open()打开文件时第一个参数只写stu-scores.csv,不写文件路径,即要删除调试代码时的文件路径)。 stu-scores.csv 【输入形式】读取.csv文件中的数据 【输出形式】利用print()语句在屏幕上输出 【样例输入】 【样例输出】
由于没有提供stu-scores.csv文件,我不能提供完整的代码,但我可以提供一个基本的思路。
1. 使用`open()`函数打开文件,并读取其中的数据。
2. 将读取的数据解析成学号和成绩的列表。
3. 针对每个学生,计算平均成绩。
4. 在屏幕上输出所有学生学号和平均成绩,保留两位小数。
以下是一份可能的代码框架:
```python
# 打开文件并读取数据
with open('stu-scores.csv', 'r') as f:
lines = f.readlines()
# 解析数据
scores = []
for line in lines:
student = line.strip().split(',')
scores.append((student[0], float(student[1]), float(student[2]), float(student[3])))
# 计算平均成绩
averages = {}
for student in scores:
average = sum(student[1:]) / 3
averages[student[0]] = average
# 输出结果
for student, average in averages.items():
print(f'{student}: {average:.2f}')
```
这份代码假设stu-scores.csv文件的格式为:
```
学号,课程1成绩,课程2成绩,课程3成绩
001,80,90,85
002,70,75,80
003,90,95,92
...
```
使用import命令读入字符串stu_scores,计算并输出每个学生的总成绩和平均成绩
假设字符串stu_scores的格式为每行一个学生的信息,包括学生姓名和各科成绩,如下所示:
```
张三,80,90,95
李四,85,88,92
王五,92,93,96
```
可以使用以下代码实现:
```python
# 读入字符串stu_scores
stu_scores = '张三,80,90,95\n李四,85,88,92\n王五,92,93,96\n'
# 分割字符串,得到每个学生的信息
stu_list = stu_scores.strip().split('\n')
# 遍历每个学生的信息,计算总成绩和平均成绩
for stu in stu_list:
# 分割学生信息,得到学生姓名和各科成绩
name, score1, score2, score3 = stu.split(',')
# 计算总成绩和平均成绩
total_score = int(score1) + int(score2) + int(score3)
avg_score = total_score / 3
# 输出学生的总成绩和平均成绩
print(f'{name}的总成绩为{total_score},平均成绩为{avg_score:.2f}')
```
输出结果如下:
```
张三的总成绩为265,平均成绩为88.33
李四的总成绩为265,平均成绩为88.33
王五的总成绩为281,平均成绩为93.67
```
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)