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

Python单词搜索计算器中find函数未返回预期结果问题求助

单词搜索计算器正向匹配逻辑修复方案

原代码核心错误点

  • 匹配判断逻辑错误:str.find()方法找到子串时返回起始索引,子串在行首时索引为0,原代码if finder > 0会漏掉行首匹配的场景,需改为if finder >= 0
  • 循环提前终止错误:原代码遍历第一行后无论是否匹配都会直接返回结果,不会遍历剩余9行,导致永远找不到第一行以外的单词
  • 类型拼接错误:打印输出时row为整数类型,直接和字符串拼接会触发类型错误,需做类型转换

修复后代码

def input_puzzle():
    print("Puzzle:\n")
    puzzle_input = ""
    # 兼容逐行输入拼图的场景
    for _ in range(10):
        puzzle_input += input().strip()
    puzzle_list = []
    for i in range(10):
        row = ""
        for j in range(10):
            row += puzzle_input[i*10 + j]
        puzzle_list.append(row)
    return puzzle_list

def check_forward(puzzle_list, word, direction):
    for row in range(len(puzzle_list)):
        row_string = puzzle_list[row]
        finder = row_string.find(word)
        if finder >= 0:
            print(f"{word}: ({direction}) row: {row} column: {finder}")
            return True
    # 所有行遍历完成后未匹配到再返回未找到
    print(f"{word}: word not found")
    return False

# 测试用例
if __name__ == "__main__":
    test_puzzle = [
        "WAQHGTTWEE",
        "CBMIVQQELS",
        "APXWKWIIIL",
        "LDELFXPIPV",
        "PONDTMVAMN",
        "OEDSOYQGOB",
        "LGQCKGMMCT",
        "YCSLOAPUZM",
        "XVDMGSXCYZ",
        "UUIUNIXFNU"
    ]
    check_forward(test_puzzle, "UNIX", "FORWARD")

运行结果

执行测试用例后输出UNIX: (FORWARD) row: 9 column: 3,与预期结果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 21:24:03