def censor(text, word):
return text.replace(word, ("*"*len(word)))
此代码采用字符串' text'并取代'字'在带有多个星号的字符串中,基于'字的长度'。
我对Python很新,但我无法弄清楚.replace是如何工作的。从字符串的Python文档中,string.replace似乎需要3(或4)个参数。但代码似乎只需要两个?我确定我错了,但如果有人能够解释,那就太好了。
答案 0 :(得分:6)
相关文档为here:
str.replace(old, new[, count])
返回字符串的副本,其中所有出现的substring old都替换为new。如果给出了可选参数计数,则仅替换第一次计数出现次数。
如您所见,它需要两个参数(以及一个可选的第三个参数)。
您可能一直在查看string
module中的文档。但是,正如它在该页面顶部所说的那样,该模块包含“一些已弃用的遗留函数,这些函数也可用作字符串上的方法”。在旧版本的Python中,您必须使用string.replace(original_string, replace_this, with_this)
。现在您可以执行original_string.replace(replace_this, with_this)
,并且在大多数情况下根本不需要导入string
模块。
答案 1 :(得分:1)
根据单词的长度,使用' repetation'创建替换。运营商' *'
例如:
nullptr
help(str)具有替换
的语法|更换(...) | S.replace(old,new [,count]) - >串 | |返回包含所有子字符串的字符串S的副本 |老被新的取代。如果可选参数计数是 |给定,只替换第一次计数。
答案 2 :(得分:0)
从文档中,传递给replace的第一个参数是字符串本身。在该代码中,您不需要明确地传递它。 >>> text = "I like learning python"
>>> word = "like"
>>> len(word)
4
>>> "*"*4
'****'
>>> text.replace(word,"*"*len(word))
'I **** learning python'
和word
是第2和第3个参数。第四个参数是可选的,是一个整数,指定要进行替换的最大出现次数。
答案 3 :(得分:0)
def censor(text,word):
mask=("*"*len(word))
maskedText=text.replace(word,mask)
return maskedText
text='Hello is somebody home ? Hello'
word='Hello'
censor("hello is somebody home ? hello","hello")
'***** is somebody home ? *****'
我已经为你分解了代码。
首先我们创建了*****
的掩码,因为你好有5个单词。这里
"*"*len(word)
为您提供一个字符*重复的字符串。
你可以使用"x"*len(word)
,它会给你xxxxx
打个招呼。
您可以使用python中的replace
函数,使用新创建的掩码替换文本中所有hello的出现。
一般用法 1.Masking功能
'pattern'*<no of times the pattern should be repeated>
示例:
"abab"*3
'abababababab'
2.更换功能
<string>.replace(<word to be replaced>,<word/pattern to be used instead><number of times the occurances of the pattern should be repeated>
示例:
>>> text='hello hello hello'
>>> text.replace('hello','Hi',2)
'Hi Hi hello'
此函数为您提供字符串的副本。 如果要修改字符串并将其替换为格式化字符串,可以通过
轻松完成text=text.replace('hello','Hi',2)
您可以阅读有关替换函数here的更多信息。
一般建议: 如有疑问,请转到命令行并使用 help()