如果我将列表中的字符串与字符串变量进行比较,它是检查单词中的所有字符还是检查列表中的单词本身



我是一个使用Python的新手程序员。下面的例子是一个名为审查程序的函数,它接受两个字符串,文本和单词作为输入。它应该返回用星号替换所选单词的文本。

例如,如果text=";大家好,大声喊";,并且字="0";每个人";,输出应该是:

"你好,向********大喊">

def censor(text, word):
text = text.lower()
text_to_list = text.split()
for i in text_to_list:
if i == word:
text = text.replace(i, '*' * len(word))
print(text)

我上面的函数看起来像是在做这项工作,但当我设置时:text=";joey是个bug",并且字="0";bug";,文本字符串中的bug也会得到星号。有人能告诉我我遗漏了什么吗?或者比较类型错了吗。我试着检查"I"one_answers"word"的类型,他们都给了我"I";类字符串";。任何帮助都会很棒。

您正在替换word的所有实例,如果只找到一个,则每次都必须手动替换:

def censor(text, word):
text = text.lower()
text_to_list = text.split()
out = []
for i in text_to_list:
out.append('*' * len(word) if i == word else i)
print(' '.join(out))

您缺少一个在您的"单词";除了空格之外没有任何符号

最新更新