Python如何将输入字符串转为单词列表通过for循环校验脏话词库
问题修复方案
现有代码错误点
- 第一行调用
input()获取输入后没有赋值给变量,后续str(input)是将input内置函数本身转为字符串,完全没有拿到用户实际输入的内容 - 没有将输入的字符串按空格拆分为单词列表,直接遍历字符串会得到单个字符,而非完整单词
- 判断条件逻辑错误,
x==[cuss_words]是将单个字符/单词和包裹了脏话列表的新列表做匹配,永远不会返回True
修正后可运行代码
# 读取用户输入并赋值 message = input('Enter your message: ') # 预设脏话词库 cuss_words = ['word_1', 'word_2', 'word_3'] # 将输入字符串按空格拆分为单词列表 word_list = message.split() # 遍历所有输入的单词 for word in word_list: # 完全匹配脏话词库内容 if word in cuss_words: print('You have been banned from chat') # 匹配到即可提前终止循环,无需继续校验 break
可选优化
如果需要实现大小写不敏感的匹配(比如用户输入Word_1也能命中规则),可以修改判断逻辑如下:
if word.lower() in [w.lower() for w in cuss_words]:
内容的提问来源于stack exchange,提问作者Tycoon
相关产品推荐
相关产品推荐

