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

Python作业求助:字符串检测替换与循环逻辑问题排查

问题分析与代码修正

原代码存在的问题

  1. 大小写丢失:将输入整体转为小写,导致输出无法保留原文本的大小写格式(如示例中其他单词应保持原有大小写)。
  2. 条件判断错误:if userInputList in badWords逻辑不成立——userInputList是单词列表,badWords是敏感词字符串列表,该判断永远为False,导致替换逻辑从未执行。
  3. 无限循环风险:while循环中仅在匹配"frak"时递增索引i,匹配"dren"时索引不变化,会陷入无限循环。
  4. 输出格式错误:直接打印列表会输出带方括号和逗号的格式,不符合示例中的句子形式。

修正后的代码

while True:
    # 接收用户输入,不转换大小写,仅去除首尾空白
    user_input = input("What shall I censor: ").strip()
    if not user_input:
        print("Goodbye!")
        break
    
    # 分割为单词列表
    words = user_input.split()
    bad_words = {"dren", "frak"}  # 用集合提高查找效率
    
    # 遍历处理每个单词
    processed_words = []
    for word in words:
        # 检查单词小写形式是否在敏感词中
        if word.lower() in bad_words:
            processed_words.append("BEEP")
        else:
            processed_words.append(word)
    
    # 拼接为句子并输出
    print(" ".join(processed_words))
    print()  # 空行分隔,匹配示例格式

修正说明

  • 保留输入的原始大小写,仅在检测敏感词时转换为小写判断,确保替换准确且其他单词格式不变。
  • 使用集合存储敏感词,比列表查找效率更高。
  • 用for循环遍历单词,避免while循环的索引错误问题。
  • 将处理后的单词列表拼接为字符串输出,符合示例的句子格式。
  • 输入为空时输出"Goodbye!"并退出循环,匹配需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 17:45:29