用相同数量的*替换Python字符串

时间:2018-08-25 14:33:34

标签: python string replace pycharm

我试图用相同数量的'*'替换字符串中的给定单词,然后打印该新字符串。但这不起作用

def censor(text , word):
  l = len(word)
  k = " " + str(word) + " "
  if k in text:
     text.replace(k , l*'*')
  return text

print censor('this word duck and this word duck is censored', 'duck')

1 个答案:

答案 0 :(得分:4)

字符串是不可变的。这意味着它们的方法不会更改对象。如果有的话,它们将返回一个新对象。 str.replace就是这种情况。 text.replace返回修改后的字符串,但您不保留它,并且text本身未修改。您需要这样做:

text = text.replace(k , l*'*')

我建议阅读官方的Python教程。