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

CodeHS电话簿问题求助:程序无法通过算法校验

问题解决:无法通过CodeHS电话号码字典校验

问题根源

你的代码存在两个核心逻辑偏差,导致无法通过校验:

  • 预先通过for循环强制添加3个条目,不符合题目要求的根据用户实时输入动态处理的逻辑,校验用例不会按这个预设流程执行。
  • 仅执行了一次姓名查询操作,没有实现重复询问姓名直到输入为空退出的核心循环逻辑,无法覆盖多次查询已存在姓名的校验场景。

修正后的代码

phone_book = {}

while True:
    name = input("Enter a name: ")
    # 输入为空时退出循环
    if not name:
        break
    # 姓名已存在,打印对应电话号码
    if name in phone_book:
        print(phone_book[name])
    # 姓名不存在,添加新的姓名和号码到字典
    else:
        phone_num = input("Enter a phone number: ")
        phone_book[name] = phone_num

# 循环结束后打印最终字典
print(phone_book)

修正说明

  1. 用while True实现无限循环,完全匹配题目“重复询问姓名”的要求,用户输入空字符串时通过break退出循环。
  2. 每次循环先处理空输入的退出逻辑,再依次判断姓名是否存在,分别执行打印号码或添加新条目的操作,完全贴合题目指定的三个操作规则。
  3. 没有预先初始化数据,所有字典条目都由用户输入动态生成,符合校验用例的预期流程。

内容的提问来源于stack exchange,提问作者Logan w

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 17:41:06