编写程序实现:首先从键盘输入若干个学号与姓名的偶对,以空行作结束标记。然后输入一个姓名,输出对应的学号;若存在重复的姓名,则输出所有同名者的学号;若不存在该姓名,则输出“查无此名”。 提示:可以对匹配的姓名进行计数,进而判断是否存在该姓名。
时间: 2024-12-22 15:19:22 浏览: 8
要实现这个功能,你可以使用Python的字典(dictionary)数据结构来存储学号和姓名的对应关系。字典的键(key)通常是唯一的,所以我们可以用姓名作为键,值则是一个包含多个学号的列表。当遇到新的输入时,我们可以检查名字是否已经在字典中,如果在就添加或更新学号列表,如果没有就创建一个新的条目。
以下是一个简单的Python代码示例:
```python
def input_student_data():
student_dict = {} # 创建一个空字典来存储学生信息
while True:
input_line = input("请输入学号姓名对(例如:1001 张三,按回车结束):")
if not input_line: # 如果输入为空行,表示输入结束
break
parts = input_line.split() # 分割字符串为学号和姓名
if len(parts) != 2:
print("输入错误,请重新输入!")
continue
# 将姓名转换为小写,便于比较
name = parts[1].lower()
if name in student_dict:
student_dict[name].append(parts[0]) # 姓名已存在,添加学号到列表
else:
student_dict[name] = [parts[0]] # 姓名首次出现,创建新列表
return student_dict
def search_student_name(student_dict):
search_name = input("请输入要查询的姓名(或输入'q'退出):").lower()
if search_name == 'q':
return
if search_name in student_dict:
print(f"姓名 '{search_name}' 对应的学号有:")
for student_id in student_dict[search_name]:
print(student_id)
else:
print("查无此人。")
# 获取学生数据并搜索
student_dict = input_student_data()
search_student_name(student_dict)
```
运行这段代码,你会先看到提示输入学号姓名对,然后输入你想查找的姓名。如果你想要结束程序,只需输入 "q" 即可。
阅读全文