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

遍历单词列表并打印不含指定子串字符的单词:代码错误排查

问题分析与修正

你的代码逻辑完全搞反了——现在的逻辑是只要当前检查的字符不在单词里,就立刻打印这个单词,而不是等所有禁止字符都检查完,确认没有一个存在才打印。

比如单词be里包含b,但第一个检查的字符是a,发现a不在,就直接打印了,根本没去检查后面的b和o,这就是为什么含b、o的单词会被输出。

修正后的代码

words = open('words.txt')

def avoids(fin, forbidden_chars):
    for line in fin:
        word = line.strip()  # 先去掉换行符和首尾空格
        is_valid = True  # 默认单词符合要求
        for char in forbidden_chars:
            if char in word:
                is_valid = False
                break  # 只要发现一个禁止字符,就不用再检查了
        if is_valid:  # 所有禁止字符都不在单词里才打印
            print(word)

avoids(words, 'abo')

关键修正点

  • 先把每行处理成干净的单词(strip()),避免换行符干扰字符检查
  • 先假设单词合法,再逐个检查禁止字符,发现违规就标记为不合法并终止检查
  • 只有等所有禁止字符都检查完,确认单词完全不包含任何禁止字符时,才打印

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 14:25:25