【发布时间】:2018-04-05 16:37:39
【问题描述】:
因此,挑战是用与该单词等长的星号替换句子中的特定单词 - 3 个字母 --> 3 个星号等。
第一部分不起作用,但第二部分可以 - 任何人都可以批评第一部分并指出我可能犯的错误,因为最初的逻辑似乎是合理的?
def censor(text, word):
for c in text:
if c == word: ## this line was totally wrong
text.replace(c, "*" * len(c))
return text
下一部分确实有效,然后 CodeAcademy 的答案就不同了:
def censor(text, word):
a = "*" * len(word)
for c in text:
nw = text.split(word)
return a.join(nw)
您将如何处理这项任务?
【问题讨论】:
-
text是列表还是字符串? -
提示。考虑代码
x = "Hello"; x.replace("H", "J"); print(x)。你期望输出是什么? -
您的具体问题是什么(您不应该真正征求我们的意见 - 这些意见各不相同)?预期的输入和输出是什么。请查看minimal reproducible example。另外,什么值被传递到
text和word?您似乎正在迭代文本中的字符并将它们与单词进行比较。 -
欢迎来到 SO。请花时间阅读How to Ask。