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

Python for循环实现猜词校验函数返回值异常排查

代码缺陷分析

你的代码存在3个核心逻辑错误,之前部分测试用例通过属于巧合:

  • 遍历对象错误:for letter in old_letters_guessed or secret_word的逻辑是,只要已猜列表非空,就只会遍历已猜列表的元素,完全不会检查密词中存在但未被猜中的字母(比如出错测试用例里密词包含的p,根本不会被遍历到)。
  • 返回时机错误:你在循环内部的if/else分支直接写了return,循环只会执行1次(仅检查第一个遍历到的元素)就终止,完全不会遍历完所有需要检查的内容。
  • 判断条件冗余混乱:长串的count判断存在大量重复逻辑,本质上你只需要判断「当前密文字母是否不在已猜列表中」即可,不需要重复统计字符出现次数。
修正后的for循环实现
def check_win(secret_word, old_letters_guessed):
    # 遍历密词的所有字母,逐一验证是否被猜中
    for letter in secret_word:
        # 只要存在一个未被猜中的密文字母,直接判定未获胜
        if letter not in old_letters_guessed:
            return False
    # 所有密文字母都验证通过,判定获胜
    return True
测试结果验证

所有测试用例均返回预期结果:

  • check_win('typewriter',['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p']) → True
  • check_win('typewriter',[]) → False
  • check_win('',['q']) → True
  • check_win('typewriter',['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o']) → False

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 19:27:29