用星号替换文本中特定单词的脚本(Python)

时间:2016-09-24 07:24:45

标签: python

我尝试创建一个函数,该函数在文本中找到一个被删除的单词(这是函数的一个参数)(这是第二个参数),并用astrerisks替换该单词的所有实例。

def censor(text, word):
    if word in text:
        position = text.index(word)
        new_text = text[0: position] + "*"*len(word) + text[position+len(word):]
        censor(new_text,word)
    else:
        return text


phrase_with = raw_input("Type the sentence")
foo= raw_input("Type the censored word")
print censor(phrase_with, foo)

但是当我在函数内部调用函数时它会停止工作。

并返回" "。为什么?我怎样才能使它工作?

在同一个函数中调用函数的规则是什么?

1 个答案:

答案 0 :(得分:0)

你需要像这样返回递归结果:

long a = 2147483647;
long b = 2147483647;
long mult = a * b;

System.out.println((int) mult);     // 1
System.out.println(mult);           // 4611686014132420609
System.out.println((double) mult);  // 4.6116860141324206E18

这是因为函数在def censor(text, word): if word in text: position = text.index(word) new_text = text[0: position] + "*"*len(word) + text[position+len(word):] return censor(new_text,word) # <-- Add return here else: return text phrase_with_fuck = raw_input("Type the sentence") fuck = raw_input("Type the censored word") print censor(phrase_with_fuck, fuck) 语句中结束,导致无。