用python建立两个列表:其中一个输入人名,另外一个输入分数(用逗号隔开),输入的人名不能重名,如果重名则在名字前加入“大”或者“小”,找到最高分数,同时显示其姓名。
时间: 2024-09-12 08:13:04 浏览: 82
你可以使用Python的字典数据结构来实现这个功能,因为字典可以方便地存储键值对,而且查找速度快。首先创建两个空的字典,一个用于存储人名和对应的分数,另一个用于跟踪最大分数及其对应的名字。然后遍历用户输入的数据,处理重名问题并更新最大分数。
以下是示例代码:
```python
def process_scores():
names = {}
max_score = {'name': '', 'score': 0}
while True:
name = input("请输入一个人名(输入'end'结束):")
if name == 'end':
break
score_str = input(f"{name}的成绩是(用逗号分隔):")
scores = list(map(int, score_str.split(',')))
if name in names:
index = 1
while f"大{name}" in names or f"小{name}{index}" in names:
index += 1
name = f"小{name}{index}"
for i, s in enumerate(scores):
names[name] = s
if s > max_score['score']:
max_score['name'] = name
max_score['score'] = s
print(f"当前最高分为 {max_score['score']} 分,由 {max_score['name']} 获得")
process_scores()
```
在这个脚本中,我们首先让用户输入人名和分数,如果有重名,就添加前缀“大”或“小”。然后检查每个分数是否超过当前的最大分数,如果是,则更新最大分数和名字。当用户输入'end'时,程序停止。
阅读全文