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

2024-06-02 08:01:11 发布

您现在位置:Python中文网/ 问答频道 /正文

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

例如,如果text=“hello and Shoutoot to everyone”和word=“everyone”,则输出应为:

“你好,向*******大声喊叫”

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是一个buggie bug”,而word=“bug”,文本字符串中的buggie也会得到星号。有人能告诉我我遗漏了什么,或者比较类型错了吗。我试图检查'I'和'word'的类型,他们都给了我“类字符串”。任何帮助都会很好


2条回答

您缺少一个比较,即在“单词”之前和之后,除了空格之外没有任何符号

您正在替换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))

相关问题 更多 >