Robię Pythona na Codecademy próbując ocenzurować słowo w tekście. Kod działa, ale jeśli ostatnie słowo w tekście ma słowo, nie zostanie ono ocenzurowane.Python: Cenzorowanie słowa w tekście, ale ostatnie słowo nie cenzoruje
Uważam, że instrukcja for
wymaga zmian, takich jak for x in (text + 1)
, ale oczywiście powoduje błąd. Nie mamy korzystać z wbudowanych funkcji, takich jak replace()
Jakieś pomysły?
def censor(text,word):
text = text.split()
for x in text:
if x == word:
text[text.index(x)] = "*" * len(word)
return " ".join(text)
print(censor("You dirty guy and dirty boy dirty.", "dirty"))
ta zwraca [You ***** guy and ***** boy dirty.]
Proponuję użyć 'ul. replace' or 're.sub' – Dmitry
Zgadzam się wydaje się dziwne, że nie możesz użyć polecenia replace, ale możesz użyć polecenia split, index, len, join i print. Wszystkie są wbudowane – crowie
Możesz zmienić swój test, aby usunąć interpunkcję: 'if x.translate (None, string.punctuation) == word:' – samgak