Untitled
unknown
plain_text
2 years ago
1.6 kB
7
Indexable
THIS ONE IS WITHOUT .REPLACE() BUT GETS 1.9/2 BECAUSE DOESN'T REPLACE THE SUBSTRINGS ##################################################################################### #!/usr/bin/env python3 # The signatures of this class and its public methods are required for the automated grading to work. # You must not change the names or the list of parameters. # You may introduce private/protected utility methods though. class ProfanityFilter: def __init__(self, keywords, template): self.keywords=keywords self.template=template def censor(self, word): self.word=word clean_msg="" for i in range(len(self.word)): clean_msg+=self.template[i%len(self.template)] return clean_msg def filter(self, msg): self.msg=msg self.msg=self.msg.split(" ") clean_msg=[] words_to_ban=[] words_to_ban = [ word.lower() for word in self.keywords] for word in self.msg: if word.lower() in words_to_ban: clean_msg.append(self.censor(word)) else: clean_msg.append(word) return " ".join(clean_msg) # You can play around with your implementation in the body of the following 'if'. # The contained statements will be ignored while evaluating your solution. if __name__ == '__main__': f = ProfanityFilter(["duck", "shot", "batch", "mastard"], "?#$") offensive_msg = "abc defghi mastard jklmno" clean_msg = f.filter(offensive_msg) print(clean_msg) # abc defghi ?#$?#$? jklmno
Editor is loading...