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)
修正说明
- 用
while True实现无限循环,完全匹配题目“重复询问姓名”的要求,用户输入空字符串时通过break退出循环。 - 每次循环先处理空输入的退出逻辑,再依次判断姓名是否存在,分别执行打印号码或添加新条目的操作,完全贴合题目指定的三个操作规则。
- 没有预先初始化数据,所有字典条目都由用户输入动态生成,符合校验用例的预期流程。
内容的提问来源于stack exchange,提问作者Logan w
相关产品推荐
相关产品推荐

