读入newscore.txt文件(模拟数据,包括学号、姓名、班级和成绩四个数据,用英文逗号分隔),统计每个班级各有多少人
时间: 2024-05-02 17:20:24 浏览: 30
以下是Python代码实现:
```python
# 打开文件并读取内容
with open('newscore.txt', 'r') as f:
lines = f.readlines()
# 初始化班级统计字典
class_count = {}
# 遍历每一行数据
for line in lines:
# 提取班级信息
class_name = line.split(',')[2]
# 如果该班级已经在统计字典中,则加1,否则初始化为1
if class_name in class_count:
class_count[class_name] += 1
else:
class_count[class_name] = 1
# 输出每个班级的人数
for class_name, count in class_count.items():
print(f"{class_name}: {count}")
```
假设newscore.txt文件内容如下:
```
1001,张三,1班,85
1002,李四,2班,92
1003,王五,1班,78
1004,赵六,3班,88
1005,钱七,2班,76
```
运行上述Python代码后,会输出如下结果:
```
1班: 2
2班: 2
3班: 1
```
说明1班有2人,2班有2人,3班有1人。
相关问题
读入newscore.txt文件(模拟数据,包括学号、姓名、班级和成绩四个数据,用英文逗号分隔),统计每个年级各有多少人(学号前两位表示年级)
以下是Python代码实现:
```python
# 打开文件
with open('newscore.txt', 'r') as f:
# 初始化年级人数字典
grade_count = {'20': 0, '21': 0, '22': 0, '23': 0, '24': 0}
# 遍历每一行数据
for line in f:
# 分割每一行数据,并获取学号前两位
data = line.strip().split(',')
grade = data[0][:2]
# 根据年级更新年级人数字典
grade_count[grade] += 1
# 输出各年级人数
for grade, count in grade_count.items():
print('Grade {} has {} students.'.format(grade, count))
```
假设newscore.txt文件内容如下:
```
2018001,John,Class A,90
2018002,Mary,Class A,85
2028001,David,Class B,88
2028002,Lisa,Class B,92
2028003,Tom,Class B,82
2038001,Jack,Class C,95
2038002,Alice,Class C,91
2048001,Sam,Class D,89
2048002,Kate,Class D,93
2048003,Jim,Class D,87
2048004,Lily,Class D,90
```
则运行上述代码输出结果为:
```
Grade 20 has 2 students.
Grade 21 has 3 students.
Grade 22 has 3 students.
Grade 23 has 2 students.
Grade 24 has 4 students.
```
请把score.txt文件中内容一行一行读出,并让每个人的分数加10分,再写入新的文件newscore.txt中。 score.txt内容如下: 张三|40 王二|50 李四|60 赵一|40 陈一|50 丁一|60
好的,可以使用Python来实现这个功能,代码如下:
```python
# 打开score.txt文件
with open('score.txt', 'r', encoding='utf-8') as f:
# 读取每一行内容,并去除换行符
lines = [line.strip() for line in f.readlines()]
# 定义一个空字典,用于存储每个人的分数
scores = {}
# 遍历每一行内容,解析出姓名和分数,并存储到字典中
for line in lines:
name, score = line.split('|')
scores[name] = int(score)
# 将每个人的分数加10分
for name in scores:
scores[name] += 10
# 将新的分数写入到newscore.txt文件中
with open('newscore.txt', 'w', encoding='utf-8') as f:
for name, score in scores.items():
f.write(f'{name}|{score}\n')
```
执行完上述代码后,会在当前目录下生成一个名为newscore.txt的文件,其中每行内容都为“姓名|新的分数”。