import csv with open('./score.txt', 'r') as f: lines = f.readlines() scores = {} for line in lines: for i in range(1:4): player=[i] scorelist = line.strip().split(',')[1:] scoreint = [int(score) for score in scorelist] scores.get(player,scoreint)
时间: 2024-03-02 08:51:46 浏览: 97
这段代码有一些语法错误,需要进行修改。首先,第5行的player应该是一个列表,而不是一个整数,应该修改为player=[i]。其次,在第6行的scorelist中,需要将逗号后面的空格去掉,否则可能会导致解析出错。最后,在第8行中,应该使用字典的setdefault方法来初始化scores中的值,而不是使用get方法。修改后的代码如下:
```
import csv
with open('./score.txt', 'r') as f:
lines = f.readlines()
scores = {}
for line in lines:
for i in range(1, 4):
player = [i]
scorelist = line.strip().split(',')[1:]
scoreint = [int(score) for score in scorelist]
scores.setdefault(player, []).extend(scoreint)
```
这段代码的作用是读取一个以逗号分隔的文本文件,每行表示一个玩家的得分,将所有玩家的得分保存到一个字典中,字典的键是玩家编号,值是一个得分列表。
相关问题
程序功能:统计学生Python课程成绩 读取CSV文件(文本格式)student_score.csv中所有的行,每行包含了学生学号,姓名及Python成绩(有列名),如下: 学号,姓名,Python 202203,张三,90 202209,李四,88 202218,王五,79 ……,……,…… 计算所有学生Python成绩的平均分和中位数,把统计结果写入文本文件result.txt中(不要用impor)
好的,这里提供一份不使用import的Python代码,实现统计学生成绩的功能:
```python
# 读取CSV文件
with open('student_score.csv', 'r') as f:
lines = f.readlines()[1:] # 跳过标题行
scores = [float(line.strip().split(',')[2]) for line in lines]
# 计算平均分和中位数
num_scores = len(scores)
sum_scores = sum(scores)
average_score = sum_scores / num_scores
sorted_scores = sorted(scores)
if num_scores % 2 == 0:
median_score = (sorted_scores[num_scores // 2 - 1] + sorted_scores[num_scores // 2]) / 2
else:
median_score = sorted_scores[num_scores // 2]
# 写入统计结果到文本文件
with open('result.txt', 'w') as f:
f.write(f'平均分:{average_score:.2f}\n')
f.write(f'中位数:{median_score}\n')
```
在这个代码中,我们使用了Python内置的文件读写操作来读取CSV文件中的每一行,并使用列表推导式提取每行中的Python成绩。接着,我们通过计算得到了平均分和中位数。最后,我们将统计结果写入到result.txt文本文件中。
请确保您已经将student_score.csv文件与代码放在同一目录下并且拥有读写文件的权限。
1.(实践教程69-6)编写程序随机产生100个两位正整数,并将这100个数写入文本文件number.txt中,要求每行10个整数,整数之间用一个空格分隔。 2.(实践教程68-2)计算运动会某个参赛选手的得分。假设共有10个裁判,每个裁判给该选手打分(分数在0-10之间)后,去掉一个最高分和一个最低分之后的平均分即为该运动员的最后得分。某位选手的得分数据保存在文件中,文件的内容如下: 9.37 9.52 9.98 10 9.85 9.73 9.93 9.76 9.81 9.08 各数据之间使用一个空格分隔。请编写程序从文件中读取该选手的成绩并计算最后得分(保留2位小数)。 3.. (实践教程68-3)文件68-3.txt中每一行内容分别为购买的商品名称、价格、数量,求出所购商品花费的总费用。 apple 10 3 focus 100000 1 surface 8000 2 thinkpad 7000 3 chicken 10 3 7(实践教程69-4).新建一个文本文件69-4socre.csv,用来保存10名考生的3门课程的成绩,内容如下: 考号 程序设计 细胞生物 生理学 10153450101 72 96 88 10153450102 68 88 73 10153450103 63 63 66 10153450104 95 64 65 10153450105 89 88 57 10153450106 77 87 77 10153450107 67 64 97 10153450108 44 99 64 10153450109 82 73 75 10153450110 79 78 85 以上各分数项均使用英文逗号分隔。请编写程序读取该文件内容,统计每门课的平均分、最高分和最低分。用python编写程序
1. 随机产生100个两位正整数并写入文件number.txt:
```python
import random
# 生成100个两位正整数
nums = [random.randint(10, 99) for i in range(100)]
# 写入文件
with open('number.txt', 'w') as f:
for i in range(0, 100, 10):
line = ' '.join(map(str, nums[i:i+10])) + '\n'
f.write(line)
```
2. 读取文件中选手的成绩并计算最后得分:
```python
with open('score.txt', 'r') as f:
scores = f.readline().strip().split()
# 将字符串转换为浮点数
scores = list(map(float, scores))
# 去掉最高分和最低分
scores.remove(max(scores))
scores.remove(min(scores))
# 计算平均分并保留2位小数
final_score = round(sum(scores) / len(scores), 2)
print('选手最终得分为:', final_score)
```
3. 计算所购商品花费的总费用:
```python
total_cost = 0
with open('products.txt', 'r') as f:
for line in f:
name, price, count = line.strip().split()
total_cost += float(price) * int(count)
print('所购商品花费的总费用为:', total_cost)
```
4. 统计每门课的平均分、最高分和最低分:
```python
with open('score.csv', 'r') as f:
# 读取所有行
lines = f.readlines()
# 去掉第一行
lines = lines[1:]
# 将每行按逗号分隔,并将字符串转换为数值类型
data = [list(map(float, line.strip().split(','))) for line in lines]
# 计算每门课的平均分、最高分和最低分
for i in range(1, 4):
scores = [x[i] for x in data]
avg_score = sum(scores) / len(scores)
max_score = max(scores)
min_score = min(scores)
print('第{}门课: 平均分 {:.2f}, 最高分 {:.2f}, 最低分 {:.2f}'.format(i, avg_score, max_score, min_score))
```
阅读全文