已知字典 dic={'801':{1:'Tommy',2:'Thomas',3:'Jack',4:'Ben'},'303':{1:'Joyce',2:'Dora',3:'Akili',4:'Anni'},'506':{1:'Alisa',2:'Monica',3:'Joan',4:'Ada'}},存放了一个班所有学生的宿舍分配情况,其中宿舍号作为键,其对应的值也是一个字典(键为床位号,值为对应的学生姓名)。试编写程序,根据用户输入的学生姓名,查询其宿舍号及床位号,如果学生不存在,则返回'error'。
时间: 2023-12-23 22:04:09 浏览: 136
可以使用以下代码实现:
```python
dic = {'801':{1:'Tommy',2:'Thomas',3:'Jack',4:'Ben'},
'303':{1:'Joyce',2:'Dora',3:'Akili',4:'Anni'},
'506':{1:'Alisa',2:'Monica',3:'Joan',4:'Ada'}}
name = input("请输入学生姓名:")
# 遍历字典,查找学生姓名对应的宿舍号和床位号
for dorm in dic:
for bed, student in dic[dorm].items():
if student == name:
print("宿舍号:{},床位号:{}".format(dorm, bed))
break
else:
continue
break
else:
print("error")
```
首先,我们定义了一个字典 `dic`,它存放了一个班所有学生的宿舍分配情况。然后,通过 `input` 函数获取用户输入的学生姓名。
接下来,我们使用两重循环遍历字典 `dic`,对于每个宿舍,再遍历其床位和学生姓名。如果找到了目标学生姓名,就输出宿舍号和床位号,并使用 `break` 语句跳出循环。如果整个字典都遍历完了仍然没有找到目标学生姓名,就输出 "error"。
注意,这里使用了两个 `for-else` 循环,当内层循环被 `break` 中断时,会跳过外层循环的 `else` 语句,否则会执行外层循环的 `else` 语句,这里用来输出 "error"。
阅读全文