请编写程序,用户输入姓名和分数,将输入的记录加进文本文件, 并显示当前的最高分的姓名。(文本文件内容如下)。王益诚,91. 李裕,89张洪源,79马柏源77.叶维鑫,68.熊杰,61.和金贵,884杨钊,62.王林刚,92+彭林,844
时间: 2024-03-16 10:47:15 浏览: 99
好的,以下是Python代码实现:
```python
# 读取文本文件中的记录
with open('score.txt', 'r') as f:
lines = f.readlines()
# 将每行记录转换为字典
records = []
for line in lines:
name, score = line.strip().split(',')
record = {'name': name, 'score': int(score)}
records.append(record)
# 获取用户输入的记录
name = input('请输入姓名:')
score = int(input('请输入分数:'))
new_record = {'name': name, 'score': score}
# 将新记录加入列表中
records.append(new_record)
# 将列表中的记录按分数降序排列
records.sort(key=lambda x: x['score'], reverse=True)
# 将排名最高的记录输出
print('当前最高分的姓名是:{}'.format(records[0]['name']))
# 将所有记录写入文本文件
with open('score.txt', 'w') as f:
for record in records:
line = '{},{}\n'.format(record['name'], record['score'])
f.write(line)
```
注意,该程序假设文本文件中的记录都是按照姓名和分数的格式排列好的,并且姓名和分数之间用中文逗号“,”隔开。如果文本文件中的格式有变化,需要相应地修改代码。此外,该程序只能记录当前的最高分,如果有多个人得了最高分,只会输出其中一个人的姓名。
阅读全文