Zybooks Python挑战3.5.1:字典键值对删除未生效问题求助
问题排查与解决
题目要求
字典room_guest_pairs包含两个键值对,每个键值对代表一个酒店房间号和对应的客人姓名。请从输入中读取一个房间号,然后输出room_guest_pairs中对应的客人姓名,最后从room_guest_pairs中删除该键值对。
room_guest_pairs = {339: 'Sue', 238: 'Eli'} 'Your code here' print('Remaining pairs:') print(room_guest_pairs)
问题描述
编写的代码如下:
name = room_guest_pairs[int(input())] print(name) room_guest_pairs.pop(int(input()))
测试时输入238,输出客人姓名Eli,但字典未正确删除目标键值对,剩余内容仍为{339: 'Sue', 238: 'Eli'},与预期输出不符。
错误原因
代码中两次调用input()函数,第一次读取房间号获取客人姓名,第二次又要求输入房间号执行删除。但测试场景仅输入了一次房间号,第二次input()无法获取到正确的目标房间号,导致删除操作未生效。
修复后的代码
将输入的房间号存储到一个变量中,复用该变量完成取值和删除操作:
room_num = int(input()) # 获取并输出客人姓名 print(room_guest_pairs[room_num]) # 删除对应键值对 room_guest_pairs.pop(room_num)
测试输入238后,输出为:
Eli Remaining pairs: {339: 'Sue'}
符合题目预期。
内容的提问来源于stack exchange,提问作者Hailey Polk
相关产品推荐
相关产品推荐

