Python请编写一个程序,不断接收用户输入的学生姓名和学号,两者之间采用空格间隔。当用户不输入任何内容,也即直接回车后数据录入结束。 程序对于输入的数据按学号从大到小的顺序输出对应的前3个学生的姓名,结果写入文件result.txt中。
时间: 2024-10-02 09:04:02 浏览: 34
Python程序可以使用while循环以及字典数据结构来实现这个需求。这里是一个简单的示例:
```python
# 初始化一个空的字典用于存储学生信息
students = {}
# 循环直到用户输入结束
while True:
# 接收用户的输入并分割成姓名和学号
user_input = input("请输入学生姓名和学号(例如:张三 001),按回车键结束:")
# 如果输入为空,则退出循环
if not user_input.strip():
break
# 分割姓名和学号,并添加到字典中,如果学号已存在则更新姓名
name, id = user_input.split()
students[int(id)] = name
# 对学号排序并获取前三名
sorted_students = sorted(students.items(), key=lambda x: x[0], reverse=True)[:3]
# 将结果写入文件
with open('result.txt', 'w') as f:
for i, (name, _) in enumerate(sorted_students):
f.write(f"第{i+1}名:{name}\n")
print("学生信息已保存至result.txt文件中。")
阅读全文