如何解决Python检测垃圾关键词代码运行时报TypeError错误的问题
错误产生原因
str.find()方法要求传入的第一个参数是待查找的字符串,你代码中将逻辑判断表达式全部写在了find()的括号内,执行时会先计算括号内的"make a lot of money" !=-1 or "Make a lot of money"!=-1 or "MAKE A LOT OF MONEY" !=-1,该表达式返回的是布尔值True/False,相当于给find()传入了布尔值作为参数,不符合参数类型要求,因此触发类型错误。
同时你原有的逻辑写法存在错误,判断多个关键词是否存在时,需要为每个关键词单独调用查找方法,不能将所有判断逻辑合并为find()的入参。
修复方案
基础修正版(完全对齐原有逻辑修改)
text = input("Enter your text here :") if text.find("make a lot of money") != -1 or text.find("Make a lot of money") != -1 or text.find("MAKE A LOT OF MONEY") != -1: print("This Text contains spam words ")
优化版(更简洁易读)
不需要枚举所有大小写组合,统一将输入文本转为小写后判断即可,同时用in关键字替代find()!=-1,可读性更高:
text = input("Enter your text here :").lower() if "make a lot of money" in text: print("This Text contains spam words ")
内容的提问来源于stack exchange,提问作者Nidhiswar
相关产品推荐
相关产品推荐

