好的,所以我在Codecademy结束了,我在这段代码上停留了一段时间,只是没有得到。因此,我最终只是获得解决方案并试图理解它。但我不是很了解。
代码是:
def censor(text, word):
words = text.split()
result = ''
stars = '*' * len(word)
count = 0
for i in words:
if i == word:
words[count] = stars
count += 1
result =' '.join(words)
return result
print censor("this hack is wack hack", "hack")
现在我认为count必须是索引(因为它说words[count] = stars
),但是我不知道为什么他们将其设置为整数(0)或将其添加一个,我猜是它与在文本中设置审查的位置有关,但是如果有人可以向新手更好地解释这一点,我将不胜感激,所以我不仅会不理解而已。
预先感谢:)
答案 0 :(得分:0)
一种更好地指示正在发生的事情的方法如下: 将 count 设置为全局变量,以便您可以在函数外部访问它,然后只需打印结果即可。
def censor(text, word):
words = text.split()
result = ''
stars = '*' * len(word)
global count
count = 0
for i in words:
if i == word:
words[count] = stars
count += 1
result =' '.join(words)
return result
print(censor("this hack is wack hack", "hack"))
print(count)
运行时,您会看到 count 返回的值为 2
遇到被检查的单词时,Count会增加1。
但是,正如其他一些用户在评论中指出的那样,“审查”并不太有效!
答案 1 :(得分:0)
我认为您将代码复制为错误的队友。我认为这应该是-
def censor(text, word):
words = text.split()
result = ''
stars = '*' * len(word)
count = 0
for i in words:
if i == word:
words[count] = stars
count += 1 # this line executes regardless of the if condition
result =' '.join(words)
return result
print censor("this hack is wack hack", "hack")
此处count
跟踪被评估单词的位置。如果该单词恰好等于被检查的单词,则可以正确地用星号替换该单词。现在,您如何知道该单词在列表中的何处? -计数