You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 03:12:25